qstbak/Questionable/Questionable.Validation.Validators/GameSequenceCoverageValidator.cs
2026-08-17 20:27:25 +10:00

354 lines
12 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.CompilerServices;
using Dalamud.Plugin.Services;
using Questionable.Data;
using Questionable.Model;
using Questionable.Model.Questing;
namespace Questionable.Validation.Validators;
internal sealed class GameSequenceCoverageValidator : IQuestValidator
{
[Serializable]
[CompilerGenerated]
private sealed class _003C_003Ec
{
public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec();
public static Func<QuestSequence, int> _003C_003E9__2_0;
internal int _003CValidate_003Eb__2_0(QuestSequence x)
{
return _202A_200F_206E_206E_206F_202A_202D_200D_200E_202D_202E_206B_206B_202C_206F_206F_200B_206B_200C_202C_200D_202B_206A_202E_206B_202A_200F_206D_202A_200D_202B_206F_202E_200F_200D_206E_206B_206F_200B_206F_202E(x);
}
static byte _202A_200F_206E_206E_206F_202A_202D_200D_200E_202D_202E_206B_206B_202C_206F_206F_200B_206B_200C_202C_200D_202B_206A_202E_206B_202A_200F_206D_202A_200D_202B_206F_202E_200F_200D_206E_206B_206F_200B_206F_202E(QuestSequence P_0)
{
return P_0.Sequence;
}
}
[CompilerGenerated]
private sealed class _003C_003Ec__DisplayClass2_0
{
public HashSet<int> authored;
internal bool _003CValidate_003Eb__1(int seq)
{
return !authored.Contains(seq);
}
}
[CompilerGenerated]
private sealed class _003CValidate_003Ed__2 : IEnumerable<ValidationIssue>, IEnumerable, IEnumerator<ValidationIssue>, IEnumerator, IDisposable
{
private int _003C_003E1__state;
private ValidationIssue _003C_003E2__current;
private int _003C_003El__initialThreadId;
private Quest quest;
public Quest _003C_003E3__quest;
public GameSequenceCoverageValidator _003C_003E4__this;
private IEnumerator<int> _003C_003E7__wrap1;
ValidationIssue IEnumerator<ValidationIssue>.Current
{
[DebuggerHidden]
get
{
return _003C_003E2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return _003C_003E2__current;
}
}
[DebuggerHidden]
public _003CValidate_003Ed__2(int _003C_003E1__state)
{
this._003C_003E1__state = _003C_003E1__state;
_003C_003El__initialThreadId = _206A_200F_206B_202D_206F_202D_206B_202E_200F_206D_200B_206D_202B_206E_206C_206E_206E_206E_206A_206F_202B_200E_206E_202E_200C_202D_200C_200C_206C_202A_200C_202B_200B_200D_200B_202E_202E_200C_206D_202D_202E();
}
[DebuggerHidden]
void IDisposable.Dispose()
{
int num = _003C_003E1__state;
int num2 = ((num == -3) ? (-1463378025) : (-1463378026));
while (true)
{
int num3 = num2;
int num4 = -1463378025;
int num5 = num3;
int num6 = num5 + num4;
int num7 = num5 & num4;
switch (num6 - (num7 + num7))
{
default:
continue;
case 2:
num2 = -1463378026;
continue;
case 1:
if (num == 1)
{
num2 = -1463378025;
continue;
}
break;
case 0:
try
{
}
finally
{
_003C_003Em__Finally1();
}
break;
}
break;
}
_003C_003E7__wrap1 = null;
_003C_003E1__state = -2;
}
[MethodImpl(MethodImplOptions.NoInlining)]
private bool MoveNext()
{
try
{
int num = _003C_003E1__state;
GameSequenceCoverageValidator gameSequenceCoverageValidator = _003C_003E4__this;
int num2 = ((num == 0) ? (-1251389121) : (-1251389133));
_003C_003Ec__DisplayClass2_0 _003C_003Ec__DisplayClass2_ = default(_003C_003Ec__DisplayClass2_0);
QuestId questId = default(QuestId);
while (true)
{
int num3 = num2;
int num4 = -1251389125;
int num5 = num3;
switch ((num5 | num4) - (num5 & num4))
{
case 5:
return false;
case 8:
num2 = ((num == 1) ? (-1251389124) : (-1251389122));
break;
case 6:
return false;
case 4:
_003C_003E1__state = -1;
_003C_003Ec__DisplayClass2_ = new _003C_003Ec__DisplayClass2_0();
questId = quest.Id as QuestId;
num2 = (((object)questId != null) ? (-1251389125) : (-1251389123));
break;
case 3:
num2 = -1251389133;
break;
case 0:
{
_003C_003Ec__DisplayClass2_.authored = ((IEnumerable<QuestSequence>)_202C_202A_206D_206A_206B_202E_206F_200C_200B_202A_206C_206B_206A_202E_206B_200C_206B_200C_200F_200F_200B_206D_200E_202C_200E_206A_200B_202C_206D_200F_200E_200F_200C_202D_200C_202A_200D_202E_206E_200E_202E(quest.Root)).Select((Func<QuestSequence, int>)((QuestSequence x) => _003C_003Ec._202A_200F_206E_206E_206F_202A_202D_200D_200E_202D_202E_206B_206B_202C_206F_206F_200B_206B_200C_202C_200D_202B_206A_202E_206B_202A_200F_206D_202A_200D_202B_206F_202E_200F_200D_206E_206B_206F_200B_206F_202E(x))).ToHashSet();
IEnumerable<int> enumerable = GameQuestSequences.GetCompletionSequences(gameSequenceCoverageValidator._dataManager, questId).Where(_003C_003Ec__DisplayClass2_._003CValidate_003Eb__1);
_003C_003E7__wrap1 = enumerable.GetEnumerator();
_003C_003E1__state = -3;
num2 = -1251389134;
break;
}
case 2:
{
int current = _003C_003E7__wrap1.Current;
ValidationIssue obj = new ValidationIssue
{
PathType = EPathType.Quest,
Id = _206F_206C_206E_202A_200F_206D_200B_202E_206C_200C_200B_200F_200C_202B_202B_206D_206B_202C_200D_200F_200F_200D_206B_200B_202E_200C_200D_202C_200F_206D_200D_200E_202C_206E_200B_206B_206E_202A_206B_200C_202E((object)quest.Id),
Location = SchemaValidationHelper.FormatQuestLocation((byte)current, null),
Type = EIssueType.MissingPostInstanceSequence,
Severity = EIssueSeverity.Warning
};
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(76, 1);
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1038269044));
defaultInterpolatedStringHandler.AppendFormatted(current);
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1871308311));
obj.Description = _206B_202C_206E_206A_200F_206E_202A_202C_206F_200D_200C_206E_202E_200B_206B_206E_202B_202D_202E_206E_202B_206C_206B_206F_200E_206F_202B_200E_206B_206C_202C_202A_202E_202A_202D_202D_200C_206D_202E_202D_202E(defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1742548975));
_003C_003E2__current = obj;
_003C_003E1__state = 1;
return true;
}
case 7:
_003C_003E1__state = -3;
num2 = -1251389134;
break;
case 9:
num2 = (_202A_206D_206A_200B_200B_202A_202E_202A_200B_206E_202A_202E_202D_200B_206B_200B_206B_200D_206E_202B_200B_200F_206C_200C_200E_206E_206B_206C_202E_202A_200B_202C_202E_200C_202B_206E_206F_206F_206F_200C_202E((IEnumerator)_003C_003E7__wrap1) ? (-1251389127) : (-1251389126));
break;
case 1:
_003C_003Em__Finally1();
_003C_003E7__wrap1 = null;
return false;
}
}
}
catch
{
//try-fault
((IDisposable)this).Dispose();
throw;
}
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
private void _003C_003Em__Finally1()
{
_003C_003E1__state = -1;
int num = ((_003C_003E7__wrap1 == null) ? (-1668424457) : (-1668424458));
while (true)
{
int num2 = num;
int num3 = -1668424457;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
num = -1668424458;
break;
case 1:
_200F_206D_206A_206E_202C_206E_200E_200C_202C_206C_206D_206F_202C_202C_200F_202A_202A_202D_206C_206E_202A_206A_200B_206A_206C_206E_206D_200C_200B_202A_206B_200C_206B_200F_200E_202C_206A_206C_202C_206A_202E((IDisposable)_003C_003E7__wrap1);
num = -1668424457;
break;
case 0:
return;
}
}
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw _206E_206F_200C_200C_206F_200C_202E_202A_206E_206D_200D_206F_202D_206E_202E_200F_206C_206B_200F_200E_200B_202B_206F_206F_202D_202D_200C_202C_202A_200F_200D_202D_200B_202C_202E_200D_202D_206C_202C_200F_202E();
}
[DebuggerHidden]
IEnumerator<ValidationIssue> IEnumerable<ValidationIssue>.GetEnumerator()
{
int num = ((_003C_003E1__state != -2) ? (-272048312) : (-272048307));
_003CValidate_003Ed__2 _003CValidate_003Ed__ = default(_003CValidate_003Ed__2);
while (true)
{
int num2 = num;
int num3 = -272048308;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
_003CValidate_003Ed__.quest = _003C_003E3__quest;
return _003CValidate_003Ed__;
case 2:
_003C_003E1__state = 0;
_003CValidate_003Ed__ = this;
num = -272048308;
break;
case 1:
num = ((_003C_003El__initialThreadId != _206A_200F_206B_202D_206F_202D_206B_202E_200F_206D_200B_206D_202B_206E_206C_206E_206E_206E_206A_206F_202B_200E_206E_202E_200C_202D_200C_200C_206C_202A_200C_202B_200B_200D_200B_202E_202E_200C_206D_202D_202E()) ? (-272048312) : (-272048306));
break;
case 4:
_003CValidate_003Ed__ = new _003CValidate_003Ed__2(0)
{
_003C_003E4__this = _003C_003E4__this
};
num = -272048308;
break;
case 3:
num = -272048307;
break;
}
}
}
[DebuggerHidden]
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable<ValidationIssue>)this).GetEnumerator();
}
static int _206A_200F_206B_202D_206F_202D_206B_202E_200F_206D_200B_206D_202B_206E_206C_206E_206E_206E_206A_206F_202B_200E_206E_202E_200C_202D_200C_200C_206C_202A_200C_202B_200B_200D_200B_202E_202E_200C_206D_202D_202E()
{
return Environment.CurrentManagedThreadId;
}
static List<QuestSequence> _202C_202A_206D_206A_206B_202E_206F_200C_200B_202A_206C_206B_206A_202E_206B_200C_206B_200C_200F_200F_200B_206D_200E_202C_200E_206A_200B_202C_206D_200F_200E_200F_200C_202D_200C_202A_200D_202E_206E_200E_202E(QuestRoot P_0)
{
return P_0.QuestSequence;
}
static string _206F_206C_206E_202A_200F_206D_200B_202E_206C_200C_200B_200F_200C_202B_202B_206D_206B_202C_200D_200F_200F_200D_206B_200B_202E_200C_200D_202C_200F_206D_200D_200E_202C_206E_200B_206B_206E_202A_206B_200C_202E(object P_0)
{
return P_0.ToString();
}
static string _206B_202C_206E_206A_200F_206E_202A_202C_206F_200D_200C_206E_202E_200B_206B_206E_202B_202D_202E_206E_202B_206C_206B_206F_200E_206F_202B_200E_206B_206C_202C_202A_202E_202A_202D_202D_200C_206D_202E_202D_202E(string P_0, string P_1)
{
return P_0 + P_1;
}
static bool _202A_206D_206A_200B_200B_202A_202E_202A_200B_206E_202A_202E_202D_200B_206B_200B_206B_200D_206E_202B_200B_200F_206C_200C_200E_206E_206B_206C_202E_202A_200B_202C_202E_200C_202B_206E_206F_206F_206F_200C_202E(IEnumerator P_0)
{
return P_0.MoveNext();
}
static void _200F_206D_206A_206E_202C_206E_200E_200C_202C_206C_206D_206F_202C_202C_200F_202A_202A_202D_206C_206E_202A_206A_200B_206A_206C_206E_206D_200C_200B_202A_206B_200C_206B_200F_200E_202C_206A_206C_202C_206A_202E(IDisposable P_0)
{
P_0.Dispose();
}
static NotSupportedException _206E_206F_200C_200C_206F_200C_202E_202A_206E_206D_200D_206F_202D_206E_202E_200F_206C_206B_200F_200E_200B_202B_206F_206F_202D_202D_200C_202C_202A_200F_200D_202D_200B_202C_202E_200D_202D_206C_202C_200F_202E()
{
return new NotSupportedException();
}
}
private readonly IDataManager _dataManager;
public GameSequenceCoverageValidator(IDataManager dataManager)
{
_dataManager = dataManager;
}
[IteratorStateMachine(typeof(_003CValidate_003Ed__2))]
public IEnumerable<ValidationIssue> Validate(Quest quest)
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new _003CValidate_003Ed__2(-2)
{
_003C_003E4__this = this,
_003C_003E3__quest = quest
};
}
IEnumerable<ValidationIssue> IQuestValidator.Validate(Quest quest)
{
//ILSpy generated this explicit interface implementation from .override directive in Validate
return this.Validate(quest);
}
}