forked from aly/qstbak
549 lines
20 KiB
C#
549 lines
20 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.Immutable;
|
|
using System.Linq;
|
|
using System.Runtime.CompilerServices;
|
|
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
|
|
using LLib.GameData;
|
|
using Lumina.Excel;
|
|
using Lumina.Excel.Sheets;
|
|
using Questionable.Model.Questing;
|
|
|
|
namespace Questionable.Model;
|
|
|
|
internal sealed class QuestInfo : IQuestInfo
|
|
{
|
|
[Serializable]
|
|
[CompilerGenerated]
|
|
private sealed class _003C_003Ec
|
|
{
|
|
public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec();
|
|
|
|
public static Func<PreviousQuestInfo, bool> _003C_003E9__0_0;
|
|
|
|
public static Func<RowRef<Lumina.Excel.Sheets.Quest>, QuestId> _003C_003E9__0_1;
|
|
|
|
public static Func<QuestId, bool> _003C_003E9__0_2;
|
|
|
|
public static Func<RowRef<InstanceContent>, ushort> _003C_003E9__0_3;
|
|
|
|
public static Func<ushort, bool> _003C_003E9__0_4;
|
|
|
|
public static Func<RowRef, bool> _003C_003E9__0_5;
|
|
|
|
public static Func<RowRef, Item?> _003C_003E9__0_6;
|
|
|
|
public static Func<Item?, bool> _003C_003E9__0_7;
|
|
|
|
public static Func<RowRef<Item>, bool> _003C_003E9__0_8;
|
|
|
|
public static Func<RowRef<Item>, Item?> _003C_003E9__0_9;
|
|
|
|
public static Func<Item?, bool> _003C_003E9__0_10;
|
|
|
|
public static Func<Item?, Item> _003C_003E9__0_11;
|
|
|
|
public static Func<ItemReward, bool> _003C_003E9__0_13;
|
|
|
|
internal bool _003C_002Ector_003Eb__0_0(PreviousQuestInfo x)
|
|
{
|
|
return _206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E((ElementId)x.QuestId) != 0;
|
|
}
|
|
|
|
internal QuestId _003C_002Ector_003Eb__0_1(RowRef<Lumina.Excel.Sheets.Quest> x)
|
|
{
|
|
return _202C_202A_200E_206B_202E_202B_200F_200E_200B_206B_206F_200C_206A_206A_200D_200C_202C_206B_206A_200B_206B_200F_206B_200B_202A_206F_202D_200D_206D_200C_200E_200C_200F_206B_202A_202E_202C_206F_202E_206D_202E(x.RowId);
|
|
}
|
|
|
|
internal bool _003C_002Ector_003Eb__0_2(QuestId x)
|
|
{
|
|
return _206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E((ElementId)x) != 0;
|
|
}
|
|
|
|
internal ushort _003C_002Ector_003Eb__0_3(RowRef<InstanceContent> x)
|
|
{
|
|
return (ushort)x.RowId;
|
|
}
|
|
|
|
internal bool _003C_002Ector_003Eb__0_4(ushort x)
|
|
{
|
|
return x != 0;
|
|
}
|
|
|
|
internal bool _003C_002Ector_003Eb__0_5(RowRef x)
|
|
{
|
|
int num = ((x.RowId == 0) ? 461820485 : 461820486);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 461820484;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 0:
|
|
goto IL_004a;
|
|
case 1:
|
|
return false;
|
|
case 2:
|
|
return x.Is<Item>();
|
|
}
|
|
continue;
|
|
IL_004a:
|
|
num = 461820486;
|
|
}
|
|
}
|
|
|
|
internal Item? _003C_002Ector_003Eb__0_6(RowRef x)
|
|
{
|
|
return x.GetValueOrDefault<Item>();
|
|
}
|
|
|
|
internal bool _003C_002Ector_003Eb__0_7(Item? x)
|
|
{
|
|
return x.HasValue;
|
|
}
|
|
|
|
internal bool _003C_002Ector_003Eb__0_8(RowRef<Item> x)
|
|
{
|
|
return x.RowId != 0;
|
|
}
|
|
|
|
internal Item? _003C_002Ector_003Eb__0_9(RowRef<Item> x)
|
|
{
|
|
return x.ValueNullable;
|
|
}
|
|
|
|
internal bool _003C_002Ector_003Eb__0_10(Item? x)
|
|
{
|
|
return x.HasValue;
|
|
}
|
|
|
|
internal Item _003C_002Ector_003Eb__0_11(Item? x)
|
|
{
|
|
return x.Value;
|
|
}
|
|
|
|
internal bool _003C_002Ector_003Eb__0_13(ItemReward x)
|
|
{
|
|
return x != null;
|
|
}
|
|
|
|
static ushort _206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E(ElementId P_0)
|
|
{
|
|
return P_0.Value;
|
|
}
|
|
|
|
static QuestId _202C_202A_200E_206B_202E_202B_200F_200E_200B_206B_206F_200C_206A_206A_200D_200C_202C_206B_206A_200B_206B_200F_206B_200B_202A_206F_202D_200D_206D_200C_200E_200C_200F_206B_202A_202E_202C_206F_202E_206D_202E(uint P_0)
|
|
{
|
|
return Questionable.Model.Questing.QuestId.FromRowId(P_0);
|
|
}
|
|
}
|
|
|
|
public ElementId QuestId { get; }
|
|
|
|
public string Name { get; }
|
|
|
|
public ushort Level { get; }
|
|
|
|
public uint IssuerDataId { get; }
|
|
|
|
public bool IsRepeatable { get; }
|
|
|
|
public ImmutableList<PreviousQuestInfo> PreviousQuests { get; private set; }
|
|
|
|
public EQuestJoin PreviousQuestJoin { get; }
|
|
|
|
public ImmutableList<QuestId> QuestLocks { get; private set; }
|
|
|
|
public EQuestJoin QuestLockJoin { get; private set; }
|
|
|
|
public List<ushort> PreviousInstanceContent { get; }
|
|
|
|
public EQuestJoin PreviousInstanceContentJoin { get; }
|
|
|
|
public uint? JournalGenre { get; set; }
|
|
|
|
public ushort SortKey { get; set; }
|
|
|
|
public bool IsMainScenarioQuest { get; }
|
|
|
|
public bool CompletesInstantly { get; }
|
|
|
|
public FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany GrandCompany { get; }
|
|
|
|
public EAlliedSociety AlliedSociety { get; }
|
|
|
|
public byte AlliedSocietyQuestGroup { get; }
|
|
|
|
public int AlliedSocietyRank { get; }
|
|
|
|
public IReadOnlyList<EClassJob> ClassJobs { get; }
|
|
|
|
public bool IsSeasonalEvent { get; }
|
|
|
|
public uint NewGamePlusChapter { get; }
|
|
|
|
public byte StartingCity { get; set; }
|
|
|
|
public byte MoogleDeliveryLevel { get; }
|
|
|
|
public IReadOnlyList<ItemReward> ItemRewards { get; }
|
|
|
|
public EExpansionVersion Expansion { get; }
|
|
|
|
public DateTime? SeasonalQuestExpiry { get; internal set; }
|
|
|
|
public bool IsSeasonalQuest { get; internal set; }
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
public QuestInfo(Lumina.Excel.Sheets.Quest quest, uint newGamePlusChapter, byte startingCity, bool isSeasonalEventQuest = false, DateTime? seasonalQuestExpiry = null)
|
|
{
|
|
QuestId = _206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(quest.RowId);
|
|
ushort num = _200E_206E_206F_200C_202C_206A_200F_206B_206A_206B_206B_202D_206A_202B_200F_206D_206F_200D_206D_202A_206A_206D_202E_206D_202D_200C_202A_202D_200D_200D_202C_200C_202A_206D_206C_206B_206A_202B_206F_202A_202E(QuestId);
|
|
string text;
|
|
if ((uint)num <= 123u)
|
|
{
|
|
if ((uint)num <= 108u)
|
|
{
|
|
if (num != 85)
|
|
{
|
|
if (num != 108)
|
|
{
|
|
goto IL_01b2;
|
|
}
|
|
text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-710232599);
|
|
}
|
|
else
|
|
{
|
|
text = 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>(-112345390);
|
|
}
|
|
}
|
|
else if (num != 109)
|
|
{
|
|
if (num != 123)
|
|
{
|
|
goto IL_01b2;
|
|
}
|
|
text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1425643080);
|
|
}
|
|
else
|
|
{
|
|
text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-74132824);
|
|
}
|
|
}
|
|
else if ((uint)num <= 570u)
|
|
{
|
|
if (num != 124)
|
|
{
|
|
int num2 = 568;
|
|
int num3 = num;
|
|
switch (~(~num3 + num2))
|
|
{
|
|
case 0:
|
|
break;
|
|
case 1:
|
|
goto IL_0142;
|
|
case 2:
|
|
goto IL_0152;
|
|
default:
|
|
goto IL_01b2;
|
|
}
|
|
text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-990183056);
|
|
}
|
|
else
|
|
{
|
|
text = 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>(-1094754462);
|
|
}
|
|
}
|
|
else if (num != 673)
|
|
{
|
|
if (num != 674)
|
|
{
|
|
int num2 = 1432;
|
|
int num3 = num;
|
|
switch (~(~num3 + num2))
|
|
{
|
|
case 0:
|
|
break;
|
|
case 1:
|
|
goto IL_0192;
|
|
case 2:
|
|
goto IL_01a2;
|
|
default:
|
|
goto IL_01b2;
|
|
}
|
|
text = 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>(-755758949);
|
|
}
|
|
else
|
|
{
|
|
text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(894839759);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
text = 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>(1214228773);
|
|
}
|
|
goto IL_01bd;
|
|
IL_0192:
|
|
text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(842512297);
|
|
goto IL_01bd;
|
|
IL_0152:
|
|
text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1604495935);
|
|
goto IL_01bd;
|
|
IL_01bd:
|
|
string value = text;
|
|
Name = $"{quest.Name}{value}";
|
|
Level = quest.ClassJobLevel[0];
|
|
IssuerDataId = quest.IssuerStart.RowId;
|
|
IsRepeatable = quest.IsRepeatable;
|
|
PreviousQuests = new List<PreviousQuestInfo>
|
|
{
|
|
new PreviousQuestInfo(ReplaceOldQuestIds(_206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(quest.PreviousQuest[0].RowId)), quest.Unknown7),
|
|
new PreviousQuestInfo(ReplaceOldQuestIds(_206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(quest.PreviousQuest[1].RowId)), 0),
|
|
new PreviousQuestInfo(ReplaceOldQuestIds(_206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(quest.PreviousQuest[2].RowId)), 0)
|
|
}.Where((PreviousQuestInfo x) => _003C_003Ec._206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E((ElementId)x.QuestId) != 0).ToImmutableList();
|
|
PreviousQuestJoin = (EQuestJoin)quest.PreviousQuestJoin;
|
|
QuestLocks = (from x in quest.QuestLock
|
|
select _003C_003Ec._202C_202A_200E_206B_202E_202B_200F_200E_200B_206B_206F_200C_206A_206A_200D_200C_202C_206B_206A_200B_206B_200F_206B_200B_202A_206F_202D_200D_206D_200C_200E_200C_200F_206B_202A_202E_202C_206F_202E_206D_202E(x.RowId) into x
|
|
where _003C_003Ec._206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E((ElementId)x) != 0
|
|
select x).ToImmutableList();
|
|
QuestLockJoin = (EQuestJoin)quest.QuestLockJoin;
|
|
JournalGenre = quest.JournalGenre.ValueNullable?.RowId;
|
|
SortKey = quest.SortKey;
|
|
JournalGenre? valueNullable = quest.JournalGenre.ValueNullable;
|
|
IsMainScenarioQuest = valueNullable.HasValue && valueNullable.GetValueOrDefault().Icon == 61412;
|
|
CompletesInstantly = quest.TodoParams[0].ToDoCompleteSeq == 0;
|
|
PreviousInstanceContent = (from x in quest.InstanceContent
|
|
select (ushort)x.RowId into x
|
|
where x != 0
|
|
select x).ToList();
|
|
PreviousInstanceContentJoin = (EQuestJoin)quest.InstanceContentJoin;
|
|
GrandCompany = (FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany)quest.GrandCompany.RowId;
|
|
AlliedSociety = (EAlliedSociety)quest.BeastTribe.RowId;
|
|
AlliedSocietyQuestGroup = quest.DailyQuestPool;
|
|
AlliedSocietyRank = (int)quest.BeastReputationRank.RowId;
|
|
ClassJobs = QuestInfoUtils.AsList(quest.ClassJobCategory0.ValueNullable);
|
|
IsSeasonalEvent = quest.Festival.RowId != 0;
|
|
IsSeasonalQuest = isSeasonalEventQuest;
|
|
SeasonalQuestExpiry = (IsSeasonalQuest ? seasonalQuestExpiry : ((DateTime?)null));
|
|
NewGamePlusChapter = newGamePlusChapter;
|
|
StartingCity = startingCity;
|
|
MoogleDeliveryLevel = (byte)quest.DeliveryQuest.RowId;
|
|
IEnumerable<Item> first = (from x in quest.Reward.Where(delegate(RowRef x)
|
|
{
|
|
int num4 = ((x.RowId == 0) ? 461820485 : 461820486);
|
|
while (true)
|
|
{
|
|
int num5 = num4;
|
|
int num6 = 461820484;
|
|
int num7 = num5;
|
|
int num8 = num7 + num6;
|
|
int num9 = num7 & num6;
|
|
switch (num8 - (num9 + num9))
|
|
{
|
|
case 0:
|
|
goto IL_004a;
|
|
case 1:
|
|
return false;
|
|
case 2:
|
|
return x.Is<Item>();
|
|
}
|
|
continue;
|
|
IL_004a:
|
|
num4 = 461820486;
|
|
}
|
|
})
|
|
select x.GetValueOrDefault<Item>() into x
|
|
where x.HasValue
|
|
select x).Cast<Item>();
|
|
IEnumerable<Item> second = from x in quest.OptionalItemReward
|
|
where x.RowId != 0
|
|
select x.ValueNullable into x
|
|
where x.HasValue
|
|
select x.Value;
|
|
ItemRewards = (from x in first.Concat(second)
|
|
select ItemReward.CreateFromItem(x, QuestId) into x
|
|
where x != null
|
|
select x).Cast<ItemReward>().ToList();
|
|
Expansion = (EExpansionVersion)quest.Expansion.RowId;
|
|
return;
|
|
IL_0142:
|
|
text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(100444472);
|
|
goto IL_01bd;
|
|
IL_01b2:
|
|
text = 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>(1200342830);
|
|
goto IL_01bd;
|
|
IL_01a2:
|
|
text = 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>(1214228773);
|
|
goto IL_01bd;
|
|
}
|
|
|
|
private static QuestId ReplaceOldQuestIds(QuestId questId)
|
|
{
|
|
int num = ((_200E_206E_206F_200C_202C_206A_200F_206B_206A_206B_206B_202D_206A_202B_200F_206D_206F_200D_206D_202A_206A_206D_202E_206D_202D_200C_202A_202D_200D_200D_202C_200C_202A_206D_206C_206B_206A_202B_206F_202A_202E((ElementId)questId) != 524) ? 1388511094 : 1388511093);
|
|
QuestId result = default(QuestId);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1388511095;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 0:
|
|
return result;
|
|
case 2:
|
|
result = _200E_206E_200D_200E_202D_202B_200C_202E_206C_206A_206E_206D_202B_206B_200B_202E_206D_200B_202E_202D_200E_202D_200B_202D_206D_202D_206C_200C_200B_200F_206A_202D_200C_206B_206C_200C_206C_202C_206B_206F_202E((ushort)4522);
|
|
num = 1388511095;
|
|
break;
|
|
case 1:
|
|
result = questId;
|
|
num = 1388511095;
|
|
break;
|
|
case 3:
|
|
num = 1388511093;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public void AddPreviousQuest(PreviousQuestInfo questId)
|
|
{
|
|
ImmutableList<PreviousQuestInfo> previousQuests = PreviousQuests;
|
|
int num = 0;
|
|
PreviousQuestInfo[] array = new PreviousQuestInfo[1 + previousQuests.Count];
|
|
using (ImmutableList<PreviousQuestInfo>.Enumerator enumerator = previousQuests.GetEnumerator())
|
|
{
|
|
int num2 = 152689152;
|
|
while (true)
|
|
{
|
|
int num3 = num2;
|
|
int num4 = 152689155;
|
|
int num5 = num3;
|
|
switch ((num5 | num4) - (num5 & num4))
|
|
{
|
|
case 2:
|
|
num2 = 152689152;
|
|
break;
|
|
case 3:
|
|
num2 = (enumerator.MoveNext() ? 152689154 : 152689155);
|
|
break;
|
|
case 1:
|
|
{
|
|
PreviousQuestInfo current = enumerator.Current;
|
|
array[num] = current;
|
|
int num6 = num;
|
|
num4 = 1;
|
|
num5 = num6;
|
|
int num7 = num5 ^ num4;
|
|
int num8 = num5 & num4;
|
|
num = num7 + (num8 + num8);
|
|
num2 = 152689152;
|
|
break;
|
|
}
|
|
case 0:
|
|
goto end_IL_002a;
|
|
}
|
|
continue;
|
|
end_IL_002a:
|
|
break;
|
|
}
|
|
}
|
|
array[num] = questId;
|
|
PreviousQuests = ImmutableList.Create(new ReadOnlySpan<PreviousQuestInfo>(array));
|
|
}
|
|
|
|
public void AddQuestLocks(EQuestJoin questJoin, params QuestId[] questId)
|
|
{
|
|
int num = ((QuestLocks.Count <= 0) ? 132063164 : 132063166);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 132063167;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 0:
|
|
throw _202E_206C_200E_206B_200D_202B_202A_206C_206E_206D_206E_206E_206E_202B_206B_200B_206B_202C_206A_206C_206F_200D_202E_200B_202E_202E_200C_200F_202A_202B_202A_200C_202D_200E_200D_206C_200F_200B_202E_206E_202E();
|
|
case 1:
|
|
num = ((QuestLockJoin == questJoin) ? 132063164 : 132063167);
|
|
break;
|
|
case 2:
|
|
num = 132063166;
|
|
break;
|
|
case 3:
|
|
{
|
|
QuestLockJoin = questJoin;
|
|
ImmutableList<QuestId> questLocks = QuestLocks;
|
|
int num7 = 0;
|
|
QuestId[] array = new QuestId[questLocks.Count + questId.Length];
|
|
using (ImmutableList<QuestId>.Enumerator enumerator = questLocks.GetEnumerator())
|
|
{
|
|
num = -1685123962;
|
|
while (true)
|
|
{
|
|
int num8 = num;
|
|
num3 = -1685123961;
|
|
num4 = num8;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 1:
|
|
num = (enumerator.MoveNext() ? (-1685123964) : (-1685123963));
|
|
break;
|
|
case 3:
|
|
{
|
|
QuestId current = enumerator.Current;
|
|
array[num7] = current;
|
|
int num9 = num7;
|
|
num3 = 1;
|
|
num4 = num9;
|
|
num7 = (num4 | num3) + (num4 & num3);
|
|
num = -1685123962;
|
|
break;
|
|
}
|
|
case 0:
|
|
num = -1685123962;
|
|
break;
|
|
case 2:
|
|
goto end_IL_00c5;
|
|
}
|
|
continue;
|
|
end_IL_00c5:
|
|
break;
|
|
}
|
|
}
|
|
ReadOnlySpan<QuestId> readOnlySpan = new ReadOnlySpan<QuestId>(questId);
|
|
readOnlySpan.CopyTo(new Span<QuestId>(array).Slice(num7, readOnlySpan.Length));
|
|
num7 += readOnlySpan.Length;
|
|
QuestLocks = ImmutableList.Create(new ReadOnlySpan<QuestId>(array));
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
static QuestId _206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(uint P_0)
|
|
{
|
|
return Questionable.Model.Questing.QuestId.FromRowId(P_0);
|
|
}
|
|
|
|
static ushort _200E_206E_206F_200C_202C_206A_200F_206B_206A_206B_206B_202D_206A_202B_200F_206D_206F_200D_206D_202A_206A_206D_202E_206D_202D_200C_202A_202D_200D_200D_202C_200C_202A_206D_206C_206B_206A_202B_206F_202A_202E(ElementId P_0)
|
|
{
|
|
return P_0.Value;
|
|
}
|
|
|
|
static QuestId _200E_206E_200D_200E_202D_202B_200C_202E_206C_206A_206E_206D_202B_206B_200B_202E_206D_200B_202E_202D_200E_202D_200B_202D_206D_202D_206C_200C_200B_200F_206A_202D_200C_206B_206C_200C_206C_202C_206B_206F_202E(ushort P_0)
|
|
{
|
|
return new QuestId(P_0);
|
|
}
|
|
|
|
static InvalidOperationException _202E_206C_200E_206B_200D_202B_202A_206C_206E_206D_206E_206E_206E_202B_206B_200B_206B_202C_206A_206C_206F_200D_202E_200B_202E_202E_200C_200F_202A_202B_202A_200C_202D_200E_200D_206C_200F_200B_202E_206E_202E()
|
|
{
|
|
return new InvalidOperationException();
|
|
}
|
|
}
|