muffin v7.5.11
This commit is contained in:
parent
addf2d530f
commit
3102923ce2
522 changed files with 41082 additions and 211592 deletions
|
|
@ -1,9 +1,5 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Questionable.Model;
|
||||
using Questionable.Model.Questing;
|
||||
|
||||
|
|
@ -11,25 +7,6 @@ namespace Questionable.Data;
|
|||
|
||||
internal sealed class QuestChainBuilder
|
||||
{
|
||||
[Serializable]
|
||||
[CompilerGenerated]
|
||||
private sealed class _003C_003Ec
|
||||
{
|
||||
public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec();
|
||||
|
||||
public static Comparison<QuestId> _003C_003E9__6_1;
|
||||
|
||||
internal int _003CGetChainGraph_003Eb__6_1(QuestId a, QuestId b)
|
||||
{
|
||||
return _200D_202A_200B_200D_202E_206E_202C_206E_200E_206E_200D_206A_200F_202B_206B_206F_200C_202C_206D_202D_200C_200E_200E_202D_200F_200F_200F_200D_206A_206F_200D_202D_202E_206E_202D_206D_202E_200F_206C_200F_202E((ElementId)a).CompareTo(_200D_202A_200B_200D_202E_206E_202C_206E_200E_206E_200D_206A_200F_202B_206B_206F_200C_202C_206D_202D_200C_200E_200E_202D_200F_200F_200F_200D_206A_206F_200D_202D_202E_206E_202D_206D_202E_200F_206C_200F_202E((ElementId)b));
|
||||
}
|
||||
|
||||
static ushort _200D_202A_200B_200D_202E_206E_202C_206E_200E_206E_200D_206A_200F_202B_206B_206F_200C_202C_206D_202D_200C_200E_200E_202D_200F_200F_200F_200D_206A_206F_200D_202D_202E_206E_202D_206D_202E_200F_206C_200F_202E(ElementId P_0)
|
||||
{
|
||||
return P_0.Value;
|
||||
}
|
||||
}
|
||||
|
||||
private readonly QuestData _questData;
|
||||
|
||||
private readonly Dictionary<QuestId, List<QuestId>> _descendants = new Dictionary<QuestId, List<QuestId>>();
|
||||
|
|
@ -41,459 +18,127 @@ internal sealed class QuestChainBuilder
|
|||
public QuestChainBuilder(QuestData questData)
|
||||
{
|
||||
_questData = questData;
|
||||
IEnumerator<KeyValuePair<ElementId, IQuestInfo>> enumerator = _questData.AllQuests.GetEnumerator();
|
||||
try
|
||||
foreach (var (elementId2, questInfo2) in _questData.AllQuests)
|
||||
{
|
||||
while (_206F_202C_206E_206F_200B_206E_202D_200E_200E_200B_206A_206D_206E_200E_200E_200D_202E_200E_202B_206E_202E_206A_200C_202E_202C_206E_206B_200D_206C_200D_202A_202D_206D_206E_206B_200F_206C_206B_206D_206C_202E((IEnumerator)enumerator))
|
||||
if (!(elementId2 is QuestId item))
|
||||
{
|
||||
var (elementId2, questInfo2) = (KeyValuePair<ElementId, IQuestInfo>)(ref enumerator.Current);
|
||||
if (!(elementId2 is QuestId item))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
foreach (PreviousQuestInfo previousQuest in questInfo2.PreviousQuests)
|
||||
{
|
||||
if (!_descendants.TryGetValue(previousQuest.QuestId, out List<QuestId> value))
|
||||
{
|
||||
value = new List<QuestId>();
|
||||
_descendants[previousQuest.QuestId] = value;
|
||||
}
|
||||
value.Add(item);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (enumerator != null)
|
||||
foreach (PreviousQuestInfo previousQuest in questInfo2.PreviousQuests)
|
||||
{
|
||||
_206F_202E_206D_200E_206A_206C_202D_206E_206E_206E_206F_206B_200D_200C_200D_202B_202A_200E_202A_206B_202A_206A_206A_200C_206F_206F_206F_206A_200B_202A_202E_202D_200E_202B_206E_206E_206D_200E_206F_200C_202E((IDisposable)enumerator);
|
||||
if (!_descendants.TryGetValue(previousQuest.QuestId, out List<QuestId> value))
|
||||
{
|
||||
value = new List<QuestId>();
|
||||
_descendants[previousQuest.QuestId] = value;
|
||||
}
|
||||
value.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public QuestChain GetChain(QuestId questId)
|
||||
{
|
||||
QuestChain value;
|
||||
int num = ((!_cache.TryGetValue(questId, out value)) ? (-1661948315) : (-1661948316));
|
||||
while (true)
|
||||
if (_cache.TryGetValue(questId, out QuestChain value))
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1661948315;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
List<QuestId> list = new List<QuestId>();
|
||||
CollectAncestors(questId, list, new HashSet<QuestId>());
|
||||
list.Add(questId);
|
||||
List<QuestId> list2 = new List<QuestId>();
|
||||
CollectDescendants(questId, list2, new HashSet<QuestId>());
|
||||
QuestChain questChain = new QuestChain(list, list2, questId);
|
||||
_cache[questId] = questChain;
|
||||
return questChain;
|
||||
}
|
||||
case 1:
|
||||
return value;
|
||||
case 2:
|
||||
goto IL_009e;
|
||||
}
|
||||
continue;
|
||||
IL_009e:
|
||||
num = -1661948316;
|
||||
return value;
|
||||
}
|
||||
List<QuestId> list = new List<QuestId>();
|
||||
CollectAncestors(questId, list, new HashSet<QuestId>());
|
||||
list.Add(questId);
|
||||
List<QuestId> list2 = new List<QuestId>();
|
||||
CollectDescendants(questId, list2, new HashSet<QuestId>());
|
||||
QuestChain questChain = new QuestChain(list, list2, questId);
|
||||
_cache[questId] = questChain;
|
||||
return questChain;
|
||||
}
|
||||
|
||||
public QuestChainGraph GetChainGraph(QuestId questId)
|
||||
{
|
||||
int num = ((!_graphCache.TryGetValue(questId, out QuestChainGraph value)) ? 194094588 : 194094591);
|
||||
Dictionary<QuestId, List<QuestId>> prerequisites;
|
||||
PreviousQuestInfo current3 = default(PreviousQuestInfo);
|
||||
QuestId current7 = default(QuestId);
|
||||
int num11 = default(int);
|
||||
QuestId current8 = default(QuestId);
|
||||
int num21 = default(int);
|
||||
int num19 = default(int);
|
||||
List<List<QuestId>> list2 = default(List<List<QuestId>>);
|
||||
while (true)
|
||||
if (_graphCache.TryGetValue(questId, out QuestChainGraph value))
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 194094590;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
goto IL_005d;
|
||||
case 1:
|
||||
return value;
|
||||
case 2:
|
||||
{
|
||||
HashSet<QuestId> hashSet = new HashSet<QuestId>();
|
||||
CollectAllRelated(questId, hashSet);
|
||||
prerequisites = new Dictionary<QuestId, List<QuestId>>();
|
||||
Dictionary<QuestId, List<QuestId>> dictionary = new Dictionary<QuestId, List<QuestId>>();
|
||||
using (HashSet<QuestId>.Enumerator enumerator = hashSet.GetEnumerator())
|
||||
{
|
||||
num = 102426660;
|
||||
while (true)
|
||||
{
|
||||
int num5 = num;
|
||||
num3 = 102426662;
|
||||
num4 = num5;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = 102426660;
|
||||
break;
|
||||
case 2:
|
||||
num = (enumerator.MoveNext() ? 102426661 : 102426663);
|
||||
break;
|
||||
case 3:
|
||||
{
|
||||
QuestId current = enumerator.Current;
|
||||
prerequisites[current] = new List<QuestId>();
|
||||
dictionary[current] = new List<QuestId>();
|
||||
num = 102426660;
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
goto end_IL_009e;
|
||||
}
|
||||
continue;
|
||||
end_IL_009e:
|
||||
break;
|
||||
}
|
||||
}
|
||||
foreach (QuestId item in hashSet)
|
||||
{
|
||||
if (!_questData.TryGetQuestInfo(item, out IQuestInfo questInfo))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
using ImmutableList<PreviousQuestInfo>.Enumerator enumerator2 = questInfo.PreviousQuests.GetEnumerator();
|
||||
num = 986674695;
|
||||
while (true)
|
||||
{
|
||||
int num6 = num;
|
||||
num3 = 986674692;
|
||||
num4 = num6;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 3:
|
||||
num = (enumerator2.MoveNext() ? 986674694 : 986674693);
|
||||
break;
|
||||
case 4:
|
||||
prerequisites[item].Add(current3.QuestId);
|
||||
dictionary[current3.QuestId].Add(item);
|
||||
num = 986674695;
|
||||
break;
|
||||
case 2:
|
||||
current3 = enumerator2.Current;
|
||||
num = ((!hashSet.Contains(current3.QuestId)) ? 986674695 : 986674688);
|
||||
break;
|
||||
case 0:
|
||||
num = 986674695;
|
||||
break;
|
||||
case 1:
|
||||
goto end_IL_0189;
|
||||
}
|
||||
continue;
|
||||
end_IL_0189:
|
||||
break;
|
||||
}
|
||||
}
|
||||
Dictionary<QuestId, int> dictionary2 = new Dictionary<QuestId, int>();
|
||||
List<QuestId> list = hashSet.Where((QuestId q) => prerequisites[q].Count == 0).ToList();
|
||||
using (HashSet<QuestId>.Enumerator enumerator = hashSet.GetEnumerator())
|
||||
{
|
||||
num = 1881646025;
|
||||
while (true)
|
||||
{
|
||||
int num7 = num;
|
||||
num3 = 1881646027;
|
||||
num4 = num7;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 3:
|
||||
num = 1881646025;
|
||||
break;
|
||||
case 2:
|
||||
num = (enumerator.MoveNext() ? 1881646026 : 1881646027);
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
QuestId current4 = enumerator.Current;
|
||||
dictionary2[current4] = 0;
|
||||
num = 1881646025;
|
||||
break;
|
||||
}
|
||||
case 0:
|
||||
goto end_IL_02bf;
|
||||
}
|
||||
continue;
|
||||
end_IL_02bf:
|
||||
break;
|
||||
}
|
||||
}
|
||||
Dictionary<QuestId, int> dictionary3 = new Dictionary<QuestId, int>();
|
||||
using (HashSet<QuestId>.Enumerator enumerator = hashSet.GetEnumerator())
|
||||
{
|
||||
num = -45802294;
|
||||
while (true)
|
||||
{
|
||||
int num8 = num;
|
||||
num3 = -45802293;
|
||||
num4 = num8;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 1:
|
||||
num = (enumerator.MoveNext() ? (-45802295) : (-45802296));
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
QuestId current5 = enumerator.Current;
|
||||
dictionary3[current5] = prerequisites[current5].Count;
|
||||
num = -45802294;
|
||||
break;
|
||||
}
|
||||
case 0:
|
||||
num = -45802294;
|
||||
break;
|
||||
case 3:
|
||||
goto end_IL_036c;
|
||||
}
|
||||
continue;
|
||||
end_IL_036c:
|
||||
break;
|
||||
}
|
||||
}
|
||||
Queue<QuestId> queue = new Queue<QuestId>(list);
|
||||
using (List<QuestId>.Enumerator enumerator3 = list.GetEnumerator())
|
||||
{
|
||||
num = 32820321;
|
||||
while (true)
|
||||
{
|
||||
int num9 = num;
|
||||
num3 = 32820322;
|
||||
num4 = num9;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = 32820321;
|
||||
break;
|
||||
case 3:
|
||||
num = (enumerator3.MoveNext() ? 32820323 : 32820320);
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
QuestId current6 = enumerator3.Current;
|
||||
dictionary2[current6] = 0;
|
||||
num = 32820321;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
goto end_IL_042d;
|
||||
}
|
||||
continue;
|
||||
end_IL_042d:
|
||||
break;
|
||||
}
|
||||
}
|
||||
while (queue.Count > 0)
|
||||
{
|
||||
QuestId key = queue.Dequeue();
|
||||
using List<QuestId>.Enumerator enumerator3 = dictionary[key].GetEnumerator();
|
||||
num = -1942600016;
|
||||
while (true)
|
||||
{
|
||||
int num10 = num;
|
||||
num3 = -1942600013;
|
||||
num4 = num10;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
num = -1942600016;
|
||||
break;
|
||||
case 4:
|
||||
current7 = enumerator3.Current;
|
||||
num11 = dictionary2[key] + 1;
|
||||
num = ((num11 <= dictionary2[current7]) ? (-1942600011) : (-1942600013));
|
||||
break;
|
||||
case 1:
|
||||
queue.Enqueue(current7);
|
||||
num = -1942600016;
|
||||
break;
|
||||
case 0:
|
||||
dictionary2[current7] = num11;
|
||||
num = -1942600011;
|
||||
break;
|
||||
case 6:
|
||||
{
|
||||
QuestId key2 = current7;
|
||||
int num12 = dictionary3[key2];
|
||||
num3 = 1;
|
||||
num4 = num12;
|
||||
dictionary3[key2] = ~(~num4 + num3);
|
||||
num = ((dictionary3[current7] != 0) ? (-1942600016) : (-1942600014));
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
num = (enumerator3.MoveNext() ? (-1942600009) : (-1942600010));
|
||||
break;
|
||||
case 5:
|
||||
goto end_IL_04e3;
|
||||
}
|
||||
continue;
|
||||
end_IL_04e3:
|
||||
break;
|
||||
}
|
||||
}
|
||||
using (HashSet<QuestId>.Enumerator enumerator = hashSet.GetEnumerator())
|
||||
{
|
||||
num = -234574320;
|
||||
while (true)
|
||||
{
|
||||
int num13 = num;
|
||||
num3 = -234574318;
|
||||
num4 = num13;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
num = (enumerator.MoveNext() ? (-234574314) : (-234574319));
|
||||
break;
|
||||
case 4:
|
||||
current8 = enumerator.Current;
|
||||
num = (dictionary2.ContainsKey(current8) ? (-234574320) : (-234574317));
|
||||
break;
|
||||
case 0:
|
||||
num = -234574320;
|
||||
break;
|
||||
case 1:
|
||||
dictionary2[current8] = 0;
|
||||
num = -234574320;
|
||||
break;
|
||||
case 3:
|
||||
goto end_IL_0638;
|
||||
}
|
||||
continue;
|
||||
end_IL_0638:
|
||||
break;
|
||||
}
|
||||
}
|
||||
num = ((hashSet.Count > 0) ? (-2059298114) : (-2059298113));
|
||||
while (true)
|
||||
{
|
||||
int num14 = num;
|
||||
num3 = -2059298115;
|
||||
num4 = num14;
|
||||
int num15 = num4 + num3;
|
||||
int num16 = num4 & num3;
|
||||
int num20;
|
||||
switch (num15 - (num16 + num16))
|
||||
{
|
||||
case 0:
|
||||
num = ((num21 <= num19) ? (-2059298120) : (-2059298116));
|
||||
break;
|
||||
case 2:
|
||||
num20 = 0;
|
||||
goto IL_07cb;
|
||||
case 5:
|
||||
{
|
||||
list2.Add(new List<QuestId>());
|
||||
int num22 = num21;
|
||||
num3 = 1;
|
||||
num4 = num22;
|
||||
int num23 = num4 ^ num3;
|
||||
int num24 = num4 & num3;
|
||||
num21 = num23 + (num24 + num24);
|
||||
num = -2059298115;
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
num = -2059298113;
|
||||
break;
|
||||
case 3:
|
||||
num20 = _202C_206A_200F_200D_202D_206C_200B_206B_206D_200B_206B_206E_202E_202A_206C_202C_206B_200E_206C_200E_200D_200D_202B_202C_202E_200F_206D_202A_206C_202C_206E_202E_200F_206F_200C_200C_200B_200E_206D_206F_202E((IEnumerable<int>)dictionary2.Values);
|
||||
goto IL_07cb;
|
||||
case 1:
|
||||
{
|
||||
using (HashSet<QuestId>.Enumerator enumerator = hashSet.GetEnumerator())
|
||||
{
|
||||
num = -1078522335;
|
||||
while (true)
|
||||
{
|
||||
int num17 = num;
|
||||
num3 = -1078522335;
|
||||
num4 = num17;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = (enumerator.MoveNext() ? (-1078522336) : (-1078522334));
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
QuestId current9 = enumerator.Current;
|
||||
list2[dictionary2[current9]].Add(current9);
|
||||
num = -1078522335;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
num = -1078522335;
|
||||
break;
|
||||
case 3:
|
||||
goto end_IL_07f7;
|
||||
}
|
||||
continue;
|
||||
end_IL_07f7:
|
||||
break;
|
||||
}
|
||||
}
|
||||
using (List<List<QuestId>>.Enumerator enumerator4 = list2.GetEnumerator())
|
||||
{
|
||||
num = -1375899676;
|
||||
while (true)
|
||||
{
|
||||
int num18 = num;
|
||||
num3 = -1375899676;
|
||||
num4 = num18;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = (enumerator4.MoveNext() ? (-1375899673) : (-1375899675));
|
||||
break;
|
||||
case 3:
|
||||
enumerator4.Current.Sort((QuestId a, QuestId b) => _003C_003Ec._200D_202A_200B_200D_202E_206E_202C_206E_200E_206E_200D_206A_200F_202B_206B_206F_200C_202C_206D_202D_200C_200E_200E_202D_200F_200F_200F_200D_206A_206F_200D_202D_202E_206E_202D_206D_202E_200F_206C_200F_202E((ElementId)a).CompareTo(_003C_003Ec._200D_202A_200B_200D_202E_206E_202C_206E_200E_206E_200D_206A_200F_202B_206B_206F_200C_202C_206D_202D_200C_200E_200E_202D_200F_200F_200F_200D_206A_206F_200D_202D_202E_206E_202D_206D_202E_200F_206C_200F_202E((ElementId)b)));
|
||||
num = -1375899676;
|
||||
break;
|
||||
case 2:
|
||||
num = -1375899676;
|
||||
break;
|
||||
case 1:
|
||||
goto end_IL_08ab;
|
||||
}
|
||||
continue;
|
||||
end_IL_08ab:
|
||||
break;
|
||||
}
|
||||
}
|
||||
QuestChainGraph questChainGraph = new QuestChainGraph(prerequisites, dictionary, dictionary2, list2, questId);
|
||||
_graphCache[questId] = questChainGraph;
|
||||
return questChainGraph;
|
||||
}
|
||||
IL_07cb:
|
||||
num19 = num20;
|
||||
list2 = new List<List<QuestId>>();
|
||||
num21 = 0;
|
||||
num = -2059298115;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
continue;
|
||||
IL_005d:
|
||||
num = 194094591;
|
||||
return value;
|
||||
}
|
||||
HashSet<QuestId> hashSet = new HashSet<QuestId>();
|
||||
CollectAllRelated(questId, hashSet);
|
||||
Dictionary<QuestId, List<QuestId>> prerequisites = new Dictionary<QuestId, List<QuestId>>();
|
||||
Dictionary<QuestId, List<QuestId>> dictionary = new Dictionary<QuestId, List<QuestId>>();
|
||||
foreach (QuestId item in hashSet)
|
||||
{
|
||||
prerequisites[item] = new List<QuestId>();
|
||||
dictionary[item] = new List<QuestId>();
|
||||
}
|
||||
foreach (QuestId item2 in hashSet)
|
||||
{
|
||||
if (!_questData.TryGetQuestInfo(item2, out IQuestInfo questInfo))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
foreach (PreviousQuestInfo previousQuest in questInfo.PreviousQuests)
|
||||
{
|
||||
if (hashSet.Contains(previousQuest.QuestId))
|
||||
{
|
||||
prerequisites[item2].Add(previousQuest.QuestId);
|
||||
dictionary[previousQuest.QuestId].Add(item2);
|
||||
}
|
||||
}
|
||||
}
|
||||
Dictionary<QuestId, int> dictionary2 = new Dictionary<QuestId, int>();
|
||||
List<QuestId> list = hashSet.Where((QuestId q) => prerequisites[q].Count == 0).ToList();
|
||||
foreach (QuestId item3 in hashSet)
|
||||
{
|
||||
dictionary2[item3] = 0;
|
||||
}
|
||||
Dictionary<QuestId, int> dictionary3 = new Dictionary<QuestId, int>();
|
||||
foreach (QuestId item4 in hashSet)
|
||||
{
|
||||
dictionary3[item4] = prerequisites[item4].Count;
|
||||
}
|
||||
Queue<QuestId> queue = new Queue<QuestId>(list);
|
||||
foreach (QuestId item5 in list)
|
||||
{
|
||||
dictionary2[item5] = 0;
|
||||
}
|
||||
while (queue.Count > 0)
|
||||
{
|
||||
QuestId key = queue.Dequeue();
|
||||
foreach (QuestId item6 in dictionary[key])
|
||||
{
|
||||
int num = dictionary2[key] + 1;
|
||||
if (num > dictionary2[item6])
|
||||
{
|
||||
dictionary2[item6] = num;
|
||||
}
|
||||
dictionary3[item6]--;
|
||||
if (dictionary3[item6] == 0)
|
||||
{
|
||||
queue.Enqueue(item6);
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach (QuestId item7 in hashSet)
|
||||
{
|
||||
if (!dictionary2.ContainsKey(item7))
|
||||
{
|
||||
dictionary2[item7] = 0;
|
||||
}
|
||||
}
|
||||
int num2 = ((hashSet.Count > 0) ? dictionary2.Values.Max() : 0);
|
||||
List<List<QuestId>> list2 = new List<List<QuestId>>();
|
||||
for (int num3 = 0; num3 <= num2; num3++)
|
||||
{
|
||||
list2.Add(new List<QuestId>());
|
||||
}
|
||||
foreach (QuestId item8 in hashSet)
|
||||
{
|
||||
list2[dictionary2[item8]].Add(item8);
|
||||
}
|
||||
foreach (List<QuestId> item9 in list2)
|
||||
{
|
||||
item9.Sort((QuestId a, QuestId b) => a.Value.CompareTo(b.Value));
|
||||
}
|
||||
QuestChainGraph questChainGraph = new QuestChainGraph(prerequisites, dictionary, dictionary2, list2, questId);
|
||||
_graphCache[questId] = questChainGraph;
|
||||
return questChainGraph;
|
||||
}
|
||||
|
||||
public void Invalidate()
|
||||
|
|
@ -511,245 +156,57 @@ internal sealed class QuestChainBuilder
|
|||
|
||||
private void CollectAncestorsSet(QuestId questId, HashSet<QuestId> visited)
|
||||
{
|
||||
int num = (visited.Add(questId) ? 1731520860 : 1731520863);
|
||||
IQuestInfo questInfo = default(IQuestInfo);
|
||||
while (true)
|
||||
if (!visited.Add(questId) || !_questData.TryGetQuestInfo(questId, out IQuestInfo questInfo))
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1731520861;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 4:
|
||||
num = 1731520863;
|
||||
break;
|
||||
case 1:
|
||||
num = (_questData.TryGetQuestInfo(questId, out questInfo) ? 1731520861 : 1731520862);
|
||||
break;
|
||||
case 2:
|
||||
return;
|
||||
case 3:
|
||||
return;
|
||||
case 0:
|
||||
{
|
||||
using ImmutableList<PreviousQuestInfo>.Enumerator enumerator = questInfo.PreviousQuests.GetEnumerator();
|
||||
num = -152844110;
|
||||
while (true)
|
||||
{
|
||||
int num5 = num;
|
||||
num3 = -152844109;
|
||||
num4 = num5;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 3:
|
||||
num = -152844110;
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
PreviousQuestInfo current = enumerator.Current;
|
||||
CollectAncestorsSet(current.QuestId, visited);
|
||||
num = -152844110;
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
num = (enumerator.MoveNext() ? (-152844111) : (-152844109));
|
||||
break;
|
||||
case 0:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
foreach (PreviousQuestInfo previousQuest in questInfo.PreviousQuests)
|
||||
{
|
||||
CollectAncestorsSet(previousQuest.QuestId, visited);
|
||||
}
|
||||
}
|
||||
|
||||
private void CollectDescendantsSet(QuestId questId, HashSet<QuestId> visited)
|
||||
{
|
||||
int num = (visited.Add(questId) ? 1111057688 : 1111057690);
|
||||
List<QuestId> value = default(List<QuestId>);
|
||||
while (true)
|
||||
if (!visited.Add(questId) || !_descendants.TryGetValue(questId, out List<QuestId> value))
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1111057691;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 4:
|
||||
num = 1111057690;
|
||||
break;
|
||||
case 2:
|
||||
return;
|
||||
case 3:
|
||||
num = (_descendants.TryGetValue(questId, out value) ? 1111057691 : 1111057689);
|
||||
break;
|
||||
case 1:
|
||||
return;
|
||||
case 0:
|
||||
{
|
||||
using List<QuestId>.Enumerator enumerator = value.GetEnumerator();
|
||||
num = 1156773667;
|
||||
while (true)
|
||||
{
|
||||
int num7 = num;
|
||||
num3 = 1156773667;
|
||||
num4 = num7;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
num = 1156773667;
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
QuestId current = enumerator.Current;
|
||||
CollectDescendantsSet(current, visited);
|
||||
num = 1156773667;
|
||||
break;
|
||||
}
|
||||
case 0:
|
||||
num = (enumerator.MoveNext() ? 1156773666 : 1156773664);
|
||||
break;
|
||||
case 3:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
foreach (QuestId item in value)
|
||||
{
|
||||
CollectDescendantsSet(item, visited);
|
||||
}
|
||||
}
|
||||
|
||||
private void CollectAncestors(QuestId questId, List<QuestId> result, HashSet<QuestId> visited)
|
||||
{
|
||||
int num = (visited.Add(questId) ? 807904870 : 807904864);
|
||||
IQuestInfo questInfo = default(IQuestInfo);
|
||||
PreviousQuestInfo current = default(PreviousQuestInfo);
|
||||
while (true)
|
||||
if (!visited.Add(questId) || !_questData.TryGetQuestInfo(questId, out IQuestInfo questInfo))
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 807904866;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
return;
|
||||
}
|
||||
foreach (PreviousQuestInfo previousQuest in questInfo.PreviousQuests)
|
||||
{
|
||||
CollectAncestors(previousQuest.QuestId, result, visited);
|
||||
if (!result.Contains(previousQuest.QuestId))
|
||||
{
|
||||
case 1:
|
||||
return;
|
||||
case 4:
|
||||
num = (_questData.TryGetQuestInfo(questId, out questInfo) ? 807904865 : 807904867);
|
||||
break;
|
||||
case 2:
|
||||
return;
|
||||
case 0:
|
||||
num = 807904864;
|
||||
break;
|
||||
case 3:
|
||||
{
|
||||
using ImmutableList<PreviousQuestInfo>.Enumerator enumerator = questInfo.PreviousQuests.GetEnumerator();
|
||||
num = 960895852;
|
||||
while (true)
|
||||
{
|
||||
int num5 = num;
|
||||
num3 = 960895855;
|
||||
num4 = num5;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = 960895852;
|
||||
break;
|
||||
case 3:
|
||||
num = (enumerator.MoveNext() ? 960895851 : 960895854);
|
||||
break;
|
||||
case 2:
|
||||
result.Add(current.QuestId);
|
||||
num = 960895852;
|
||||
break;
|
||||
case 4:
|
||||
current = enumerator.Current;
|
||||
CollectAncestors(current.QuestId, result, visited);
|
||||
num = (result.Contains(current.QuestId) ? 960895852 : 960895853);
|
||||
break;
|
||||
case 1:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
result.Add(previousQuest.QuestId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void CollectDescendants(QuestId questId, List<QuestId> result, HashSet<QuestId> visited)
|
||||
{
|
||||
int num = (visited.Add(questId) ? (-599330933) : (-599330934));
|
||||
List<QuestId> value = default(List<QuestId>);
|
||||
QuestId current = default(QuestId);
|
||||
while (true)
|
||||
if (!visited.Add(questId) || !_descendants.TryGetValue(questId, out List<QuestId> value))
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -599330936;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
return;
|
||||
}
|
||||
foreach (QuestId item in value)
|
||||
{
|
||||
if (!result.Contains(item))
|
||||
{
|
||||
case 1:
|
||||
return;
|
||||
case 2:
|
||||
return;
|
||||
case 4:
|
||||
num = -599330934;
|
||||
break;
|
||||
case 3:
|
||||
num = (_descendants.TryGetValue(questId, out value) ? (-599330936) : (-599330935));
|
||||
break;
|
||||
case 0:
|
||||
{
|
||||
using List<QuestId>.Enumerator enumerator = value.GetEnumerator();
|
||||
num = -1727068589;
|
||||
while (true)
|
||||
{
|
||||
int num7 = num;
|
||||
num3 = -1727068591;
|
||||
num4 = num7;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 5:
|
||||
num = -1727068589;
|
||||
break;
|
||||
case 4:
|
||||
result.Add(current);
|
||||
num = -1727068592;
|
||||
break;
|
||||
case 3:
|
||||
current = enumerator.Current;
|
||||
num = (result.Contains(current) ? (-1727068592) : (-1727068587));
|
||||
break;
|
||||
case 2:
|
||||
num = (enumerator.MoveNext() ? (-1727068590) : (-1727068591));
|
||||
break;
|
||||
case 1:
|
||||
CollectDescendants(current, result, visited);
|
||||
num = -1727068589;
|
||||
break;
|
||||
case 0:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
result.Add(item);
|
||||
}
|
||||
CollectDescendants(item, result, visited);
|
||||
}
|
||||
}
|
||||
|
||||
static bool _206F_202C_206E_206F_200B_206E_202D_200E_200E_200B_206A_206D_206E_200E_200E_200D_202E_200E_202B_206E_202E_206A_200C_202E_202C_206E_206B_200D_206C_200D_202A_202D_206D_206E_206B_200F_206C_206B_206D_206C_202E(IEnumerator P_0)
|
||||
{
|
||||
return P_0.MoveNext();
|
||||
}
|
||||
|
||||
static void _206F_202E_206D_200E_206A_206C_202D_206E_206E_206E_206F_206B_200D_200C_200D_202B_202A_200E_202A_206B_202A_206A_206A_200C_206F_206F_206F_206A_200B_202A_202E_202D_200E_202B_206E_206E_206D_200E_206F_200C_202E(IDisposable P_0)
|
||||
{
|
||||
P_0.Dispose();
|
||||
}
|
||||
|
||||
static int _202C_206A_200F_200D_202D_206C_200B_206B_206D_200B_206B_206E_202E_202A_206C_202C_206B_200E_206C_200E_200D_200D_202B_202C_202E_200F_206D_202A_206C_202C_206E_202E_200F_206F_200C_200C_200B_200E_206D_206F_202E(IEnumerable<int> P_0)
|
||||
{
|
||||
return P_0.Max();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue