1
0
Fork 0
forked from aly/qstbak

muffin v7.5.6

This commit is contained in:
alydev 2026-08-17 20:27:25 +10:00
parent 6266f9e6b7
commit addf2d530f
619 changed files with 264792 additions and 446022 deletions

View file

@ -0,0 +1,520 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using Dalamud.Game.ClientState.Conditions;
using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Client.UI;
using FFXIVClientStructs.FFXIV.Component.GUI;
using LLib.GameUI;
using Lumina.Excel.Sheets;
using Microsoft.Extensions.Logging;
using Questionable.Controller.GameUi;
using SmartNav.Model;
namespace Questionable.Functions;
internal sealed class AethernetTeleportService : IDisposable
{
public enum ETeleportState
{
Idle,
WaitingForAddon,
Complete,
Failed
}
private static readonly TimeSpan AddonTimeout = TimeSpan.FromSeconds(15L);
private const long FireRetryIntervalMs = 100L;
private static readonly Dictionary<EAetheryteLocation, uint> FirmamentPlaceNameIds = new Dictionary<EAetheryteLocation, uint>
{
{
EAetheryteLocation.FirmamentMendicantsCourt,
3436u
},
{
EAetheryteLocation.FirmamentMattock,
3473u
},
{
EAetheryteLocation.FirmamentNewNest,
3475u
},
{
EAetheryteLocation.FirmanentSaintRoellesDais,
3474u
},
{
EAetheryteLocation.FirmamentFeatherfall,
3525u
},
{
EAetheryteLocation.FirmamentHoarfrostHall,
3528u
},
{
EAetheryteLocation.FirmamentWesternRisensongQuarter,
3646u
},
{
EAetheryteLocation.FirmamentEasternRisensongQuarter,
3645u
}
};
private readonly IFramework _framework;
private readonly IGameGui _gameGui;
private readonly IDataManager _dataManager;
private readonly ICondition _condition;
private readonly InteractionUiController _interactionUiController;
private readonly ILogger<AethernetTeleportService> _logger;
private long _requestedAtMs;
private bool _selectStringDismissed;
private bool _fired;
private bool _entriesLogged;
private long _nextFireAtMs;
public ETeleportState State { get; private set; }
public EAetheryteLocation? PendingDestination { get; private set; }
public AethernetTeleportService(IFramework framework, IGameGui gameGui, IDataManager dataManager, ICondition condition, InteractionUiController interactionUiController, ILogger<AethernetTeleportService> logger)
{
_framework = framework;
_gameGui = gameGui;
_dataManager = dataManager;
_condition = condition;
_interactionUiController = interactionUiController;
_logger = logger;
_206A_200B_200F_206A_206C_200F_200E_206D_206E_206F_200C_200E_200B_200F_202B_202D_202B_206E_206A_206B_206E_200F_202C_202D_200C_206E_200B_202B_202A_200C_200C_202C_200C_202C_206B_206E_200B_206C_200C_200E_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate);
}
[MethodImpl(MethodImplOptions.NoInlining)]
public void RequestTeleport(EAetheryteLocation destination)
{
int num = ((State == ETeleportState.Idle) ? 1903322012 : 1903322015);
string text = default(string);
uint value = default(uint);
while (true)
{
int num2 = num;
int num3 = 1903322013;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 5:
num = 1903322015;
break;
case 4:
text = ResolvePlaceName(value);
num = ((text == null) ? 1903322014 : 1903322011);
break;
case 6:
RequestCustomZoneTeleport(destination, text);
return;
case 2:
Reset();
num = 1903322012;
break;
case 1:
num = ((!FirmamentPlaceNameIds.TryGetValue(destination, out value)) ? 1903322013 : 1903322009);
break;
case 3:
_206C_202A_202C_200B_202A_200E_206F_202A_206A_200B_206A_202A_206B_206A_202A_200B_200C_206F_202D_206C_202E_202D_200F_202A_202D_206F_200C_206D_200E_206A_200C_200C_206F_200F_200D_206C_202E_206A_202D_200F_202E((ILogger)_logger, 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>(-1915991887), new object[2] { value, destination });
num = 1903322013;
break;
case 0:
_206A_202B_200D_206F_206C_202E_202C_202C_200C_206A_206D_200F_206F_206B_206F_206D_200B_206D_202A_200B_206E_202B_202C_206F_202B_200C_206E_206B_200E_206D_202E_202A_200B_202E_206B_206D_200E_206E_202E_206A_202E((ILogger)_logger, 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>(-478164003), new object[1] { destination });
PendingDestination = destination;
_requestedAtMs = _202A_200F_202A_202D_206D_202D_200F_200E_202A_202E_202A_206D_202A_202E_206F_202D_202C_202C_200C_206D_206C_202D_200D_206E_200B_202A_206C_200D_206E_200C_202B_202B_202C_206F_200C_206D_200F_200B_200E_200E_202E();
State = ETeleportState.WaitingForAddon;
return;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public void RequestCustomZoneTeleport(EAetheryteLocation destination, string destinationName)
{
int num = ((State == ETeleportState.Idle) ? (-1619368732) : (-1619368729));
while (true)
{
int num2 = num;
int num3 = -1619368731;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 1:
_206A_202B_200D_206F_206C_202E_202C_202C_200C_206A_206D_200F_206F_206B_206F_206D_200B_206D_202A_200B_206E_202B_202C_206F_202B_200C_206E_206B_200E_206D_202E_202A_200B_202E_206B_206D_200E_206E_202E_206A_202E((ILogger)_logger, 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>(-1788741827), new object[2] { destination, destinationName });
PendingDestination = destination;
_interactionUiController.AethernetDestinationName = destinationName;
State = ETeleportState.Complete;
return;
case 2:
_206C_202A_202C_200B_202A_200E_206F_202A_206A_200B_206A_202A_206B_206A_202A_200B_200C_206F_202D_206C_202E_202D_200F_202A_202D_206F_200C_206D_200E_206A_200C_200C_206F_200F_200D_206C_202E_206A_202D_200F_202E((ILogger)_logger, 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>(-1049949813), new object[1] { State });
Reset();
num = -1619368732;
break;
case 0:
num = -1619368729;
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public void Reset()
{
int num = ((State == ETeleportState.Idle) ? (-1786789518) : (-1786789517));
while (true)
{
int num2 = num;
int num3 = -1786789518;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
num = -1786789517;
break;
case 1:
_200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, 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>(1323544865), new object[1] { State });
num = -1786789518;
break;
case 0:
State = ETeleportState.Idle;
PendingDestination = null;
_requestedAtMs = 0L;
_selectStringDismissed = false;
_fired = false;
_entriesLogged = false;
_nextFireAtMs = 0L;
ClearCustomZoneState();
return;
}
}
}
private void ClearCustomZoneState()
{
_interactionUiController.AethernetDestinationName = null;
}
private string? ResolvePlaceName(uint placeNameId)
{
return _dataManager.GetExcelSheet<PlaceName>().GetRowOrDefault(placeNameId)?.Name.ToString();
}
private string? ResolveAethernetDisplayName(EAetheryteLocation aetheryte)
{
Aetheryte? rowOrDefault = _dataManager.GetExcelSheet<Aetheryte>().GetRowOrDefault((uint)aetheryte);
int num = (rowOrDefault.HasValue ? 1376211537 : 1376211538);
while (true)
{
int num2 = num;
int num3 = 1376211539;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
return rowOrDefault.Value.AethernetName.ValueNullable?.Name.ToString();
case 1:
return null;
case 0:
goto IL_00b7;
}
continue;
IL_00b7:
num = 1376211538;
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
private unsafe void OnFrameworkUpdate(IFramework _)
{
int num = ((State == ETeleportState.WaitingForAddon) ? (-640751592) : (-640751593));
AtkUnitBase* addonPtr = default(AtkUnitBase*);
int num9 = default(int);
AddonSelectString* addonPtr2 = default(AddonSelectString*);
long num19 = default(long);
int num13 = default(int);
int num7 = default(int);
string text = default(string);
string text2 = default(string);
AtkValue atkValue = default(AtkValue);
int num17 = default(int);
int num12 = default(int);
while (true)
{
int num2 = num;
int num3 = -640751592;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
int num8;
switch (num5 - (num6 + num6))
{
case 39:
return;
case 26:
num = (_206D_206E_202C_202C_200C_200B_202D_202B_206A_206E_206B_200B_200C_206E_200B_200B_206C_206F_206F_202A_200D_206C_206D_202E_206C_206F_206B_202C_202E_206C_202A_202A_206D_202A_206E_206F_202A_202C_200F_200F_202E(addonPtr) ? (-640751615) : (-640751553));
break;
case 13:
num = ((num9 < 20) ? (-640751586) : (-640751554));
break;
case 20:
num = ((!_206D_206E_202C_202C_200C_200B_202D_202B_206A_206E_206B_200B_200C_206E_200B_200B_206C_206F_206F_202A_200D_206C_206D_202E_206C_206F_206B_202C_202E_206C_202A_202A_206D_202A_206E_206F_202A_202C_200F_200F_202E(&addonPtr2->AtkUnitBase)) ? (-640751560) : (-640751555));
break;
case 18:
_selectStringDismissed = false;
return;
case 30:
num8 = -1;
goto IL_064f;
case 29:
num19 = _202A_200F_202A_202D_206D_202D_200F_200E_202A_202E_202A_206D_202A_202E_206F_202D_202C_202C_200C_206D_206C_202D_200D_206E_200B_202A_206C_200D_206E_200C_202B_202B_202C_206F_200C_206D_200F_200B_200E_200E_202E();
num = ((num19 >= _nextFireAtMs) ? (-640751556) : (-640751558));
break;
case 22:
num = ((num13 >= 0) ? (-640751616) : (-640751585));
break;
case 4:
return;
case 2:
num13 = num7;
num = -640751616;
break;
case 7:
num = ((text == null) ? (-640751616) : (-640751589));
break;
case 12:
_206C_202A_202C_200B_202A_200E_206F_202A_206A_200B_206A_202A_206B_206A_202A_200B_200C_206F_202D_206C_202E_202D_200F_202A_202D_206F_200C_206D_200E_206A_200C_200C_206F_200F_200D_206C_202E_206A_202D_200F_202E((ILogger)_logger, 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>(-964873938), new object[2] { PendingDestination, AddonTimeout.TotalSeconds });
State = ETeleportState.Failed;
return;
case 33:
num = (_206F_206B_206F_202E_206D_200E_206A_206C_202D_206C_202C_206F_202E_202C_206F_206C_206A_202E_200E_206D_200B_200E_202D_200F_206C_200F_200E_200C_206B_202E_206A_202D_200D_202A_206B_202B_202A_202E_206E_202B_202E(_condition, ConditionFlag.BetweenAreas) ? (-640751605) : (-640751591));
break;
case 21:
_200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, 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>(-969368539), new object[3] { PendingDestination, text2, num13 });
num = -640751597;
break;
case 24:
{
int num22 = num9;
num3 = 1;
num4 = num22;
int num23 = num4 ^ num3;
int num24 = num4 & num3;
num9 = num23 + (num24 + num24);
num = -640751595;
break;
}
case 5:
_200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, 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>(-568972459), new object[3] { num9, text, num7 });
num = -640751602;
break;
case 35:
num13 = -1;
num9 = 0;
num = -640751595;
break;
case 19:
_200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, 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>(-1143749055), new object[1] { PendingDestination });
State = ETeleportState.Complete;
return;
case 37:
_200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, 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>(-533960738), Array.Empty<object>());
addonPtr2->AtkUnitBase.FireCallbackInt(0);
_selectStringDismissed = true;
return;
case 8:
num = ((!_gameGui.TryGetAddonByName<AddonSelectString>(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>(1860227121), out addonPtr2)) ? (-640751560) : (-640751604));
break;
case 10:
_200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, 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>(151838006), new object[1] { PendingDestination });
State = ETeleportState.Complete;
num = -640751609;
break;
case 16:
{
text = _200E_206C_202D_202B_206D_206D_202C_200D_200C_202A_200F_202A_200D_206A_206A_206B_206A_200F_200E_200D_200D_200C_202D_206E_200D_202C_200F_206B_200C_200E_202A_202E_206A_200F_206F_202C_206F_202D_202E_202E_202E(atkValue);
num3 = num9 * 4;
num4 = 6;
int num14 = (num4 | num3) + (num4 & num3);
num3 = 3;
num4 = num14;
int num15 = num4 ^ num3;
int num16 = num4 & num3;
num17 = num15 + (num16 + num16);
num = ((num17 < addonPtr->AtkValuesCount) ? (-640751599) : (-640751610));
break;
}
case 40:
num = ((_202A_200F_202A_202D_206D_202D_200F_200E_202A_202E_202A_206D_202A_202E_206F_202D_202C_202C_200C_206D_206C_202D_200D_206E_200B_202A_206C_200D_206E_200C_202B_202B_202C_206F_200C_206D_200F_200B_200E_200E_202E() - _requestedAtMs <= (long)AddonTimeout.TotalMilliseconds) ? (-640751600) : (-640751596));
break;
case 32:
num = ((!_selectStringDismissed) ? (-640751607) : (-640751606));
break;
case 27:
atkValue = addonPtr->AtkValues[num12];
num = ((atkValue.Type == AtkValueType.Undefined) ? (-640751554) : (-640751608));
break;
case 31:
return;
case 0:
num = ((!_fired) ? (-640751568) : (-640751559));
break;
case 38:
_entriesLogged = true;
num = ((num13 >= 0) ? (-640751611) : (-640751588));
break;
case 14:
_206C_202A_202C_200B_202A_200E_206F_202A_206A_200B_206A_202A_206B_206A_202A_200B_200C_206F_202D_206C_202E_202D_200F_202A_202D_206F_200C_206D_200E_206A_200C_200C_206F_200F_200D_206C_202E_206A_202D_200F_202E((ILogger)_logger, 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>(613688553), new object[1] { PendingDestination });
State = ETeleportState.Failed;
return;
case 23:
num = -640751593;
break;
case 28:
num = ((!_fired) ? (-640751609) : (-640751598));
break;
case 36:
num = (_fired ? (-640751597) : (-640751603));
break;
case 3:
num = ((!GameFunctions.GameStringEquals(text, text2)) ? (-640751616) : (-640751590));
break;
case 11:
{
AtkValue* values = stackalloc AtkValue[2]
{
new AtkValue
{
Type = AtkValueType.Int,
Int = 11
},
new AtkValue
{
Type = AtkValueType.Int,
Int = num13
}
};
addonPtr->FireCallback(2u, values, close: true);
_fired = true;
long num18 = num19;
long num20 = 100L;
long num21 = num18;
_nextFireAtMs = (num21 | num20) + (num21 & num20);
return;
}
case 9:
num8 = addonPtr->AtkValues[num17].Int;
goto IL_064f;
case 25:
text2 = ResolveAethernetDisplayName(PendingDestination.Value);
num = ((text2 != null) ? (-640751557) : (-640751594));
break;
case 17:
num = (_gameGui.TryGetAddonByName<AtkUnitBase>(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>(-1959750528), out addonPtr) ? (-640751614) : (-640751612));
break;
case 34:
return;
case 6:
{
num3 = num9;
num4 = 262;
int num10 = num4 ^ num3;
int num11 = num4 & num3;
num12 = num10 + (num11 + num11);
num = ((num12 >= addonPtr->AtkValuesCount) ? (-640751554) : (-640751613));
break;
}
case 15:
return;
case 1:
{
num = ((!_206F_206B_206F_202E_206D_200E_206A_206C_202D_206C_202C_206F_202E_202C_206F_206C_206A_202E_200E_206D_200B_200E_202D_200F_206C_200F_200E_200C_206B_202E_206A_202D_200D_202A_206B_202B_202A_202E_206E_202B_202E(_condition, ConditionFlag.BetweenAreas51)) ? (-640751568) : (-640751605));
break;
}
IL_064f:
num7 = num8;
num = (_entriesLogged ? (-640751602) : (-640751587));
break;
}
}
}
public void Dispose()
{
_202C_206B_202D_202A_206F_202B_202A_206C_206A_206F_202C_200F_206B_206C_206A_206A_202D_202D_200B_202D_206C_202B_202E_206C_206F_206B_200D_200F_200C_200D_206E_206C_202A_202B_202E_200F_206F_206D_200E_200F_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate);
}
void IDisposable.Dispose()
{
//ILSpy generated this explicit interface implementation from .override directive in Dispose
this.Dispose();
}
static void _206A_200B_200F_206A_206C_200F_200E_206D_206E_206F_200C_200E_200B_200F_202B_202D_202B_206E_206A_206B_206E_200F_202C_202D_200C_206E_200B_202B_202A_200C_200C_202C_200C_202C_206B_206E_200B_206C_200C_200E_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1)
{
P_0.Update += P_1;
}
static void _206C_202A_202C_200B_202A_200E_206F_202A_206A_200B_206A_202A_206B_206A_202A_200B_200C_206F_202D_206C_202E_202D_200F_202A_202D_206F_200C_206D_200E_206A_200C_200C_206F_200F_200D_206C_202E_206A_202D_200F_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogWarning(P_1, P_2);
}
static void _206A_202B_200D_206F_206C_202E_202C_202C_200C_206A_206D_200F_206F_206B_206F_206D_200B_206D_202A_200B_206E_202B_202C_206F_202B_200C_206E_206B_200E_206D_202E_202A_200B_202E_206B_206D_200E_206E_202E_206A_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogInformation(P_1, P_2);
}
static long _202A_200F_202A_202D_206D_202D_200F_200E_202A_202E_202A_206D_202A_202E_206F_202D_202C_202C_200C_206D_206C_202D_200D_206E_200B_202A_206C_200D_206E_200C_202B_202B_202C_206F_200C_206D_200F_200B_200E_200E_202E()
{
return Environment.TickCount64;
}
static void _200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogDebug(P_1, P_2);
}
static bool _206F_206B_206F_202E_206D_200E_206A_206C_202D_206C_202C_206F_202E_202C_206F_206C_206A_202E_200E_206D_200B_200E_202D_200F_206C_200F_200E_200C_206B_202E_206A_202D_200D_202A_206B_202B_202A_202E_206E_202B_202E(ICondition P_0, ConditionFlag P_1)
{
return P_0[P_1];
}
unsafe static bool _206D_206E_202C_202C_200C_200B_202D_202B_206A_206E_206B_200B_200C_206E_200B_200B_206C_206F_206F_202A_200D_206C_206D_202E_206C_206F_206B_202C_202E_206C_202A_202A_206D_202A_206E_206F_202A_202C_200F_200F_202E(AtkUnitBase* P_0)
{
return LAddon.IsAddonReady(P_0);
}
static string _200E_206C_202D_202B_206D_206D_202C_200D_200C_202A_200F_202A_200D_206A_206A_206B_206A_200F_200E_200D_200D_200C_202D_206E_200D_202C_200F_206B_200C_200E_202A_202E_206A_200F_206F_202C_206F_202D_202E_202E_202E(AtkValue P_0)
{
return P_0.ReadAtkString();
}
static void _202C_206B_202D_202A_206F_202B_202A_206C_206A_206F_202C_200F_206B_206C_206A_206A_202D_202D_200B_202D_206C_202B_202E_206C_206F_206B_200D_200F_200C_200D_206E_206C_202A_202B_202E_200F_206F_206D_200E_200F_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1)
{
P_0.Update -= P_1;
}
}

View file

@ -1,12 +1,15 @@
using System;
using System.Runtime.CompilerServices;
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Client.Game;
using FFXIVClientStructs.FFXIV.Client.Game.UI;
using LLib.GameData;
using Lumina.Excel.Sheets;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Questionable.Model.Common;
using Questionable.Model.Questing;
using SmartNav.Model;
namespace Questionable.Functions;
@ -24,7 +27,7 @@ internal sealed class AetheryteFunctions
private readonly IObjectTable _objectTable;
public DateTime ReturnRequestedAt { get; set; } = DateTime.MinValue;
public long ReturnRequestedAt { get; set; }
public AetheryteFunctions(IServiceProvider serviceProvider, ILogger<AetheryteFunctions> logger, IDataManager dataManager, IObjectTable objectTable)
{
@ -38,59 +41,156 @@ internal sealed class AetheryteFunctions
{
subIndex = 0;
UIState* ptr = UIState.Instance();
if (ptr != null)
int num = ((ptr == null) ? 1947729333 : 1947729332);
while (true)
{
return ptr->IsAetheryteUnlocked(aetheryteId);
int num2 = num;
int num3 = 1947729333;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
return false;
case 1:
return ptr->IsAetheryteUnlocked(aetheryteId);
case 2:
goto IL_0058;
}
continue;
IL_0058:
num = 1947729332;
}
return false;
}
public bool IsAetheryteUnlocked(EAetheryteLocation aetheryteLocation)
{
if (aetheryteLocation.IsFirmamentAetheryte())
int num = ((!_206E_206D_200F_200B_200E_202C_206B_206B_202E_200C_200B_200E_206B_206D_206C_200B_200C_206C_202C_202B_202C_206D_206C_200E_200B_202B_206E_206D_202B_206E_200B_206F_200B_206E_202E_206B_200B_200F_202D_202B_202E(aetheryteLocation)) ? (-1602388833) : (-1602388834));
while (true)
{
return _serviceProvider.GetRequiredService<QuestFunctions>().IsQuestComplete(new QuestId(3672));
int num2 = num;
int num3 = -1602388833;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
goto IL_0048;
case 0:
{
byte subIndex;
return IsAetheryteUnlocked((uint)aetheryteLocation, out subIndex);
}
case 1:
return _serviceProvider.GetRequiredService<QuestFunctions>().IsQuestComplete(_206B_206E_206B_206B_206D_200D_200E_200B_202B_206D_202E_202C_200B_202D_202A_206D_206C_206E_200D_206C_200C_206A_200C_206E_202D_200C_200D_200F_202A_202D_200F_206D_202A_206D_206E_200B_206F_206F_202D_202E_202E((ushort)3672));
}
continue;
IL_0048:
num = -1602388834;
}
byte subIndex;
return IsAetheryteUnlocked((uint)aetheryteLocation, out subIndex);
}
public unsafe bool CanTeleport(EAetheryteLocation aetheryteLocation)
{
if ((ushort)aetheryteLocation == PlayerState.Instance()->HomeAetheryteId && ActionManager.Instance()->GetActionStatus(ActionType.Action, 6u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0)
int num = (((ushort)aetheryteLocation != _200E_202E_200F_206B_206A_206D_200D_206F_206F_206A_206B_206C_200E_202E_206D_200C_202C_206F_206E_200E_206B_206E_206A_200E_202E_200D_200C_200C_202B_200B_206D_206E_206D_200D_202B_206E_206C_200E_206B_202E_202E()) ? 508143747 : 508143745);
while (true)
{
return true;
int num2 = num;
int num3 = 508143746;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 1:
return ActionManager.Instance()->GetActionStatus(ActionType.Action, 5u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0;
case 3:
num = ((ActionManager.Instance()->GetActionStatus(ActionType.Action, 6u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) != 0) ? 508143747 : 508143746);
break;
case 0:
return true;
case 2:
num = 508143745;
break;
}
}
return ActionManager.Instance()->GetActionStatus(ActionType.Action, 5u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0;
}
public unsafe bool IsTeleportUnlocked()
{
uint rowId = _dataManager.GetExcelSheet<Lumina.Excel.Sheets.Action>().GetRow(5u).UnlockLink.RowId;
return UIState.Instance()->IsUnlockLinkUnlocked(rowId);
UIState* ptr = UIState.Instance();
int num = ((ptr == null) ? 126078724 : 126078727);
while (true)
{
int num2 = num;
int num3 = 126078725;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 1:
return false;
case 2:
return ptr->IsUnlockLinkUnlocked(rowId);
case 0:
goto IL_008b;
}
continue;
IL_008b:
num = 126078727;
}
}
public unsafe bool IsReturnAvailable()
{
return ActionManager.Instance()->GetActionStatus(ActionType.Action, 6u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0;
}
[MethodImpl(MethodImplOptions.NoInlining)]
public unsafe bool TeleportAetheryte(uint aetheryteId)
{
_logger.LogDebug("Attempting to teleport to aetheryte {AetheryteId}", aetheryteId);
if (IsAetheryteUnlocked(aetheryteId, out var subIndex))
_202A_206C_206B_200C_200F_202D_206A_200D_200C_202A_200D_206E_206B_206B_202D_202D_200C_206A_202C_206B_206D_206B_202A_202C_200E_200C_206B_200E_206D_206C_200C_202A_206F_200E_200B_202E_206B_202B_200B_202D_202E((ILogger)_logger, 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>(762406754), new object[1] { aetheryteId });
byte subIndex;
int num = ((!IsAetheryteUnlocked(aetheryteId, out subIndex)) ? 1620747025 : 1620747027);
while (true)
{
if (aetheryteId == PlayerState.Instance()->HomeAetheryteId && ActionManager.Instance()->GetActionStatus(ActionType.Action, 6u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0)
int num2 = num;
int num3 = 1620747030;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
ReturnRequestedAt = DateTime.Now;
if (ActionManager.Instance()->UseAction(ActionType.Action, 6u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null))
{
_logger.LogInformation("Using 'return' for home aetheryte");
return true;
}
}
if (ActionManager.Instance()->GetActionStatus(ActionType.Action, 5u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0)
{
_logger.LogInformation("Teleporting to aetheryte {AetheryteId}", aetheryteId);
case 7:
return false;
case 6:
ReturnRequestedAt = _206C_200F_206F_206E_206C_200D_206F_202A_202C_202B_206F_202C_200F_200D_202B_202E_206B_200E_200E_206A_206E_200F_206A_202C_202D_206B_202C_200F_206C_200D_200B_206B_202A_206A_206D_200D_200C_202D_206B_206D_202E();
num = ((!ActionManager.Instance()->UseAction(ActionType.Action, 6u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null)) ? 1620747031 : 1620747029);
break;
case 5:
num = ((aetheryteId != _200E_202E_200F_206B_206A_206D_200D_206F_206F_206A_206B_206C_200E_202E_206D_200C_202C_206F_206E_200E_206B_206E_206A_200E_202E_200D_200C_200C_202B_200B_206D_206E_206D_200D_202B_206E_206C_200E_206B_202E_202E()) ? 1620747031 : 1620747030);
break;
case 0:
num = ((ActionManager.Instance()->GetActionStatus(ActionType.Action, 6u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) != 0) ? 1620747031 : 1620747024);
break;
case 2:
num = 1620747027;
break;
case 1:
num = ((ActionManager.Instance()->GetActionStatus(ActionType.Action, 5u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) != 0) ? 1620747025 : 1620747026);
break;
case 4:
_206F_202E_206E_206B_200E_202D_206B_200B_200E_206B_206C_202B_202D_206C_206A_202B_202A_202D_202D_206B_200C_200D_206F_202D_202A_206B_202A_202A_202D_200F_206A_206B_200B_206C_200F_202A_200B_202E_202A_202E_202E((ILogger)_logger, 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>(265904157), new object[1] { aetheryteId });
return Telepo.Instance()->Teleport(aetheryteId, subIndex);
case 3:
_206F_202E_206E_206B_200E_202D_206B_200B_200E_206B_206C_202B_202D_206C_206A_202B_202A_202D_202D_206B_200C_200D_206F_202D_202A_206B_202A_202A_202D_200F_206A_206B_200B_206C_200F_202A_200B_202E_202A_202E_202E((ILogger)_logger, 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>(1006691700), Array.Empty<object>());
return true;
}
}
return false;
}
public bool TeleportAetheryte(EAetheryteLocation aetheryteLocation)
@ -98,56 +198,114 @@ internal sealed class AetheryteFunctions
return TeleportAetheryte((uint)aetheryteLocation);
}
public unsafe bool IsFreeAetheryte(EAetheryteLocation aetheryteLocation)
public static bool IsFreeAetheryte(EAetheryteLocation aetheryteLocation)
{
PlayerState* ptr = PlayerState.Instance();
if (ptr != null)
{
if ((EAetheryteLocation)ptr->FreeAetheryteId != aetheryteLocation)
{
return (EAetheryteLocation)ptr->FreeAetherytePSPlus == aetheryteLocation;
}
return true;
}
return false;
return _206B_200E_200D_202D_202C_202C_206F_200E_202E_202E_202D_206B_206E_200C_206B_206C_200B_200F_200B_206E_206F_206B_200B_202E_200C_206E_206A_206A_202C_202C_206E_202D_206B_206C_206A_206E_200E_206E_206E_202E_202E((uint)aetheryteLocation);
}
public unsafe AetheryteRegistrationResult CanRegisterFreeOrFavoriteAetheryte(EAetheryteLocation aetheryteLocation)
public AetheryteRegistrationResult CanRegisterFreeOrFavoriteAetheryte(EAetheryteLocation aetheryteLocation)
{
if (_objectTable[0] == null)
int num = ((_200F_200C_206E_206B_206C_202D_206B_206B_202E_202E_202D_202D_200C_202D_202C_206E_200E_206C_200F_202C_200C_206F_200F_200D_206A_200B_206C_206D_200B_200C_200D_206A_202B_200F_202A_202A_202E_200F_206B_202B_202E(_objectTable, 0) != null) ? (-303811700) : (-303811698));
bool flag = default(bool);
while (true)
{
return AetheryteRegistrationResult.NotPossible;
}
PlayerState* ptr = PlayerState.Instance();
if (ptr == null)
{
return AetheryteRegistrationResult.NotPossible;
}
if (IsFreeAetheryte(aetheryteLocation))
{
return AetheryteRegistrationResult.NotPossible;
}
bool flag = false;
for (int i = 0; i < ptr->FavouriteAetheryteCount; i++)
{
if (ptr->FavouriteAetherytes[i] == (ushort)aetheryteLocation)
int num2 = num;
int num3 = -303811697;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 5:
num = (flag ? (-303811701) : (-303811697));
break;
case 3:
num = ((!IsFreeAetheryte(aetheryteLocation)) ? (-303811705) : (-303811699));
break;
case 0:
return AetheryteRegistrationResult.NotPossible;
case 9:
flag = _206F_206D_200D_202C_206D_202D_202C_202E_206F_202B_200E_200C_202A_206E_200E_206F_200F_206C_206B_200E_206C_200D_202B_202E_202C_202D_200C_202E_206D_200F_202B_200D_206D_200D_206B_200F_200E_200C_206F_200F_202E();
num = ((!_202C_200B_200C_200B_202E_202D_202B_200D_202B_200E_200E_206F_200F_200D_206B_202B_202A_202A_202C_206C_206A_202E_202B_206D_206D_206C_206E_200E_202C_200F_206B_202A_202A_200F_206A_206E_200B_206F_202C_206B_202E(PlayerStateFlag.IsLoginSecurityToken)) ? (-303811702) : (-303811707));
break;
case 10:
num = ((_206A_202A_200E_202D_200D_206E_206F_206D_206F_200E_202D_200B_206E_202D_200B_206B_206D_202A_200B_206A_202B_206F_202D_200F_206D_206A_200E_202C_200E_202B_200C_202C_200B_200C_202C_202E_202B_206A_206E_200D_202E() != 0) ? (-303811702) : (-303811703));
break;
case 4:
return AetheryteRegistrationResult.FavoredDestinationAvailable;
case 7:
num = -303811698;
break;
case 2:
return AetheryteRegistrationResult.NotPossible;
case 6:
return AetheryteRegistrationResult.SecurityTokenFreeDestinationAvailable;
case 8:
num = ((!_202E_206F_200B_206A_202D_206D_200F_206F_202B_206F_202C_202D_200E_206C_206D_206B_200D_202C_206F_202C_200B_206A_206B_202A_202B_206A_202C_206A_202A_202B_202C_202A_200C_206F_202C_202D_202B_202E_206D_202E((uint)aetheryteLocation)) ? (-303811706) : (-303811708));
break;
case 1:
return AetheryteRegistrationResult.NotPossible;
case 11:
return AetheryteRegistrationResult.NotPossible;
}
if (ptr->FavouriteAetherytes[i] == 0)
{
flag = true;
break;
}
}
if (ptr->IsPlayerStateFlagSet(PlayerStateFlag.IsLoginSecurityToken) && ptr->FreeAetheryteId == 0)
{
return AetheryteRegistrationResult.SecurityTokenFreeDestinationAvailable;
}
if (!flag)
{
return AetheryteRegistrationResult.NotPossible;
}
return AetheryteRegistrationResult.FavoredDestinationAvailable;
}
static bool _206E_206D_200F_200B_200E_202C_206B_206B_202E_200C_200B_200E_206B_206D_206C_200B_200C_206C_202C_202B_202C_206D_206C_200E_200B_202B_206E_206D_202B_206E_200B_206F_200B_206E_202E_206B_200B_200F_202D_202B_202E(EAetheryteLocation P_0)
{
return P_0.IsFirmamentAetheryte();
}
static QuestId _206B_206E_206B_206B_206D_200D_200E_200B_202B_206D_202E_202C_200B_202D_202A_206D_206C_206E_200D_206C_200C_206A_200C_206E_202D_200C_200D_200F_202A_202D_200F_206D_202A_206D_206E_200B_206F_206F_202D_202E_202E(ushort P_0)
{
return new QuestId(P_0);
}
static uint _200E_202E_200F_206B_206A_206D_200D_206F_206F_206A_206B_206C_200E_202E_206D_200C_202C_206F_206E_200E_206B_206E_206A_200E_202E_200D_200C_200C_202B_200B_206D_206E_206D_200D_202B_206E_206C_200E_206B_202E_202E()
{
return PlayerStateHelper.GetHomeAetheryteId();
}
static void _202A_206C_206B_200C_200F_202D_206A_200D_200C_202A_200D_206E_206B_206B_202D_202D_200C_206A_202C_206B_206D_206B_202A_202C_200E_200C_206B_200E_206D_206C_200C_202A_206F_200E_200B_202E_206B_202B_200B_202D_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogDebug(P_1, P_2);
}
static long _206C_200F_206F_206E_206C_200D_206F_202A_202C_202B_206F_202C_200F_200D_202B_202E_206B_200E_200E_206A_206E_200F_206A_202C_202D_206B_202C_200F_206C_200D_200B_206B_202A_206A_206D_200D_200C_202D_206B_206D_202E()
{
return Environment.TickCount64;
}
static void _206F_202E_206E_206B_200E_202D_206B_200B_200E_206B_206C_202B_202D_206C_206A_202B_202A_202D_202D_206B_200C_200D_206F_202D_202A_206B_202A_202A_202D_200F_206A_206B_200B_206C_200F_202A_200B_202E_202A_202E_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogInformation(P_1, P_2);
}
static bool _206B_200E_200D_202D_202C_202C_206F_200E_202E_202E_202D_206B_206E_200C_206B_206C_200B_200F_200B_206E_206F_206B_200B_202E_200C_206E_206A_206A_202C_202C_206E_202D_206B_206C_206A_206E_200E_206E_206E_202E_202E(uint P_0)
{
return PlayerStateHelper.IsFreeAetheryte(P_0);
}
static IGameObject _200F_200C_206E_206B_206C_202D_206B_206B_202E_202E_202D_202D_200C_202D_202C_206E_200E_206C_200F_202C_200C_206F_200F_200D_206A_200B_206C_206D_200B_200C_200D_206A_202B_200F_202A_202A_202E_200F_206B_202B_202E(IObjectTable P_0, int P_1)
{
return P_0[P_1];
}
static bool _202E_206F_200B_206A_202D_206D_200F_206F_202B_206F_202C_202D_200E_206C_206D_206B_200D_202C_206F_202C_200B_206A_206B_202A_202B_206A_202C_206A_202A_202B_202C_202A_200C_206F_202C_202D_202B_202E_206D_202E(uint P_0)
{
return PlayerStateHelper.IsFavouriteAetheryte(P_0);
}
static bool _206F_206D_200D_202C_206D_202D_202C_202E_206F_202B_200E_200C_202A_206E_200E_206F_200F_206C_206B_200E_206C_200D_202B_202E_202C_202D_200C_202E_206D_200F_202B_200D_206D_200D_206B_200F_200E_200C_206F_200F_202E()
{
return PlayerStateHelper.HasFavouriteSlotAvailable();
}
static bool _202C_200B_200C_200B_202E_202D_202B_200D_202B_200E_200E_206F_200F_200D_206B_202B_202A_202A_202C_206C_206A_202E_202B_206D_206D_206C_206E_200E_202C_200F_206B_202A_202A_200F_206A_206E_200B_206F_202C_206B_202E(PlayerStateFlag P_0)
{
return PlayerStateHelper.IsPlayerStateFlagSet(P_0);
}
static uint _206A_202A_200E_202D_200D_206E_206F_206D_206F_200E_202D_200B_206E_202D_200B_206B_206D_202A_200B_206A_202B_206F_202D_200F_206D_206A_200E_202C_200E_202B_200C_202C_200B_200C_202C_202E_202B_206A_206E_200D_202E()
{
return PlayerStateHelper.GetFreeAetheryteId();
}
}

View file

@ -1,8 +1,15 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Text;
using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions;
using FFXIVClientStructs.FFXIV.Client.Game;
using Lumina.Excel.Sheets;
using Microsoft.Extensions.Logging;
using Questionable.Data;
using Questionable.Model;
@ -36,134 +43,867 @@ internal sealed class AlliedSocietyQuestFunctions
private static uint Transform(uint s0, uint s1)
{
uint num = s0 ^ (s0 << 11);
return s1 ^ num ^ ((num ^ (s1 >> 11)) >> 8);
int num = (int)(s0 << 11);
int num2 = (int)s0;
int num3 = num2 + num;
int num4 = num2 & num;
uint num5 = (uint)(num3 - (num4 + num4));
num = (int)num5;
num2 = (int)s1;
int num6 = num2 + num;
int num7 = num2 & num;
int num8 = num6 - (num7 + num7);
num = (int)(s1 >> 11);
num2 = (int)num5;
int num9 = num2 + num;
int num10 = num2 & num;
num = num9 - (num10 + num10) >>> 8;
num2 = num8;
return (uint)((num2 | num) - (num2 & num));
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override readonly string ToString()
{
StringBuilder stringBuilder = _202B_202A_202D_206D_202D_206F_200E_200E_206D_200D_200F_206C_200F_206B_202C_200E_206A_200F_206F_200F_202D_200C_206A_206C_202D_202C_206A_202E_206E_202E_202B_202E_202B_202B_200C_206E_202C_206F_200F_206D_202E();
_200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(stringBuilder, 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>(1180704865));
_200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(stringBuilder, 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>(1664411125));
int num = ((!PrintMembers(stringBuilder)) ? (-666901402) : (-666901403));
while (true)
{
int num2 = num;
int num3 = -666901401;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
num = -666901403;
break;
case 2:
_206C_200F_202D_200E_202E_200D_206D_200F_202C_200B_206C_202D_202C_202A_206C_200B_206D_206F_206B_202C_202E_206A_200C_202E_206F_202C_202B_202E_202C_206A_206F_206F_206A_202E_200E_206B_202E_200B_202B_206E_202E(stringBuilder, ' ');
num = -666901402;
break;
case 1:
_206C_200F_202D_200E_202E_200D_206D_200F_202C_200B_206C_202D_202C_202A_206C_200B_206D_206F_206B_202C_202E_206A_200C_202E_206F_202C_202B_202E_202C_206A_206F_206F_206A_202E_200E_206B_202E_200B_202B_206E_202E(stringBuilder, '}');
return _206C_202A_200D_206A_206D_202C_200F_202D_202B_200D_206B_206E_200F_206B_200D_200B_202A_202A_200E_206A_206D_202B_200B_200F_200C_200B_206F_206E_202B_202E_202D_206D_202E_206C_200F_206F_200F_206C_200F_206B_202E((object)stringBuilder);
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private readonly bool PrintMembers(StringBuilder builder)
{
_200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(builder, 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>(352928866));
_200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(builder, S0.ToString());
_200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(builder, 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>(-875975294));
_200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(builder, S1.ToString());
_200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(builder, 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>(-660590067));
_200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(builder, S2.ToString());
_200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(builder, 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>(-1999766628));
_200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(builder, S3.ToString());
return true;
}
[CompilerGenerated]
public readonly bool Equals(Rng other)
{
int num = ((!EqualityComparer<uint>.Default.Equals(S0, other.S0)) ? 425581049 : 425581052);
while (true)
{
int num2 = num;
int num3 = 425581053;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
num = ((!EqualityComparer<uint>.Default.Equals(S2, other.S2)) ? 425581049 : 425581054);
break;
case 3:
return EqualityComparer<uint>.Default.Equals(S3, other.S3);
case 2:
num = 425581052;
break;
case 4:
return false;
case 1:
num = ((!EqualityComparer<uint>.Default.Equals(S1, other.S1)) ? 425581049 : 425581053);
break;
}
}
}
bool IEquatable<Rng>.Equals(Rng other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static StringBuilder _202B_202A_202D_206D_202D_206F_200E_200E_206D_200D_200F_206C_200F_206B_202C_200E_206A_200F_206F_200F_202D_200C_206A_206C_202D_202C_206A_202E_206E_202E_202B_202E_202B_202B_200C_206E_202C_206F_200F_206D_202E()
{
return new StringBuilder();
}
static StringBuilder _200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _206C_200F_202D_200E_202E_200D_206D_200F_202C_200B_206C_202D_202C_202A_206C_200B_206D_206F_206B_202C_202E_206A_200C_202E_206F_202C_202B_202E_202C_206A_206F_206F_206A_202E_200E_206B_202E_200B_202B_206E_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _206C_202A_200D_206A_206D_202C_200F_202D_202B_200D_206B_206E_200F_206B_200D_200B_202A_202A_200E_206A_206D_202B_200B_200F_200C_200B_206F_206E_202B_202E_202D_206D_202E_206C_200F_206F_200F_206C_200F_206B_202E(object P_0)
{
return P_0.ToString();
}
}
[Serializable]
[CompilerGenerated]
private sealed class _003C_003Ec
{
public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec();
public static Func<BeastReputationRank, bool> _003C_003E9__8_0;
public static Func<BeastReputationRank, uint> _003C_003E9__8_1;
public static Func<BeastReputationRank, ushort> _003C_003E9__8_2;
public static Func<Lumina.Excel.Sheets.Quest, bool> _003C_003E9__8_3;
public static Func<Lumina.Excel.Sheets.Quest, uint> _003C_003E9__8_4;
public static Func<Lumina.Excel.Sheets.Quest, ushort> _003C_003E9__8_5;
public static Func<BeastTribe, bool> _003C_003E9__8_6;
public static Func<BeastTribe, EAlliedSociety> _003C_003E9__8_7;
public static Func<BeastTribe, byte> _003C_003E9__8_8;
public static Func<EAlliedSociety, bool> _003C_003E9__8_9;
public static Func<QuestInfo, bool> _003C_003E9__8_10;
public static Func<EAlliedSociety, bool> _003C_003E9__8_11;
public static Func<QuestInfo, bool> _003C_003E9__8_12;
public static Func<QuestInfo, uint> _003C_003E9__8_13;
public static Func<IGrouping<uint, QuestInfo>, uint> _003C_003E9__8_14;
public static Func<QuestInfo, bool> _003C_003E9__8_16;
public static Func<QuestInfo, ElementId> _003C_003E9__8_17;
public static Func<IGrouping<uint, QuestInfo>, List<QuestInfo>> _003C_003E9__8_15;
public static Predicate<QuestInfo> _003C_003E9__14_2;
public static Func<QuestInfo, QuestId> _003C_003E9__14_1;
internal bool _003C_002Ector_003Eb__8_0(BeastReputationRank x)
{
return x.RowId != 0;
}
internal uint _003C_002Ector_003Eb__8_1(BeastReputationRank x)
{
return x.RowId;
}
internal ushort _003C_002Ector_003Eb__8_2(BeastReputationRank x)
{
return x.RequiredReputation;
}
internal bool _003C_002Ector_003Eb__8_3(Lumina.Excel.Sheets.Quest x)
{
int num = ((x.RowId == 0) ? 229482898 : 229482896);
while (true)
{
int num2 = num;
int num3 = 229482899;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = 229482896;
break;
case 3:
num = ((x.BeastTribe.RowId == 0) ? 229482898 : 229482897);
break;
case 2:
return x.BeastReputationValue > 0;
case 1:
return false;
}
}
}
internal uint _003C_002Ector_003Eb__8_4(Lumina.Excel.Sheets.Quest x)
{
return x.RowId;
}
internal ushort _003C_002Ector_003Eb__8_5(Lumina.Excel.Sheets.Quest x)
{
return x.BeastReputationValue;
}
internal bool _003C_002Ector_003Eb__8_6(BeastTribe x)
{
int num = ((x.RowId == 0) ? 1913982747 : 1913982745);
while (true)
{
int num2 = num;
int num3 = 1913982747;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 1:
return _206A_200F_206E_202C_206F_202C_206D_202A_200B_202C_202A_202A_206E_200E_206D_200C_206E_206F_200E_200C_206E_206B_202C_200B_202D_206B_202A_206F_206D_200F_202D_200B_202D_206C_200F_202C_200C_206D_202A_202C_202E(_206F_206E_206D_202C_206B_200B_206A_202A_200F_202B_202D_202B_200E_202E_202D_206E_206D_200E_202E_206E_206A_206B_206F_202E_206D_200B_202A_202C_206E_200E_206D_206D_206B_200C_206F_206C_206C_206A_200C_202B_202E(typeof(EAlliedSociety).TypeHandle), (object)(byte)x.RowId);
case 2:
num = (x.Name.IsEmpty ? 1913982747 : 1913982746);
break;
case 3:
num = 1913982745;
break;
case 0:
return false;
}
}
}
internal EAlliedSociety _003C_002Ector_003Eb__8_7(BeastTribe x)
{
return (EAlliedSociety)x.RowId;
}
internal byte _003C_002Ector_003Eb__8_8(BeastTribe x)
{
return x.MaxRank;
}
internal bool _003C_002Ector_003Eb__8_9(EAlliedSociety x)
{
return x != EAlliedSociety.None;
}
internal bool _003C_002Ector_003Eb__8_10(QuestInfo x)
{
return !x.IsRepeatable;
}
internal bool _003C_002Ector_003Eb__8_11(EAlliedSociety x)
{
return x != EAlliedSociety.None;
}
internal bool _003C_002Ector_003Eb__8_12(QuestInfo x)
{
return x.IsRepeatable;
}
internal uint _003C_002Ector_003Eb__8_13(QuestInfo x)
{
return x.IssuerDataId;
}
internal uint _003C_002Ector_003Eb__8_14(IGrouping<uint, QuestInfo> x)
{
return x.Key;
}
internal List<QuestInfo> _003C_002Ector_003Eb__8_15(IGrouping<uint, QuestInfo> x)
{
return (from y in x
orderby y.AlliedSocietyQuestGroup == 3, y.QuestId
select y).ToList();
}
internal bool _003C_002Ector_003Eb__8_16(QuestInfo y)
{
return y.AlliedSocietyQuestGroup == 3;
}
internal ElementId _003C_002Ector_003Eb__8_17(QuestInfo y)
{
return y.QuestId;
}
internal bool _003CCalculateAvailableQuests_003Eb__14_2(QuestInfo q)
{
return q.AlliedSocietyQuestGroup == 3;
}
internal QuestId _003CCalculateAvailableQuests_003Eb__14_1(QuestInfo x)
{
return (QuestId)x.QuestId;
}
static Type _206F_206E_206D_202C_206B_200B_206A_202A_200F_202B_202D_202B_200E_202E_202D_206E_206D_200E_202E_206E_206A_206B_206F_202E_206D_200B_202A_202C_206E_200E_206D_206D_206B_200C_206F_206C_206C_206A_200C_202B_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static bool _206A_200F_206E_202C_206F_202C_206D_202A_200B_202C_202A_202A_206E_200E_206D_200C_206E_206F_200E_200C_206E_206B_202C_200B_202D_206B_202A_206F_206D_200F_202D_200B_202D_206C_200F_202C_200C_206D_202A_202C_202E(Type P_0, object P_1)
{
return Enum.IsDefined(P_0, P_1);
}
}
private readonly ILogger<AlliedSocietyQuestFunctions> _logger;
private readonly QuestData _questData;
private readonly Dictionary<EAlliedSociety, List<NpcData>> _questsByAlliedSociety = new Dictionary<EAlliedSociety, List<NpcData>>();
private readonly Dictionary<(uint NpcDataId, byte Seed, bool OutranksAll, bool RankedUp), List<QuestId>> _dailyQuests = new Dictionary<(uint, byte, bool, bool), List<QuestId>>();
public AlliedSocietyQuestFunctions(QuestData questData, ILogger<AlliedSocietyQuestFunctions> logger)
private readonly ImmutableDictionary<uint, ushort> _reputationRequiredByRank;
private readonly ImmutableDictionary<uint, ushort> _questReputationRewards;
private readonly ImmutableDictionary<EAlliedSociety, byte> _maxRankByAlliedSociety;
private readonly ImmutableDictionary<(EAlliedSociety, byte), QuestId> _rankUpQuests;
public AlliedSocietyQuestFunctions(QuestData questData, IDataManager dataManager, ILogger<AlliedSocietyQuestFunctions> logger)
{
_logger = logger;
foreach (EAlliedSociety item in from x in Enum.GetValues<EAlliedSociety>()
where x != EAlliedSociety.None
select x)
_questData = questData;
_reputationRequiredByRank = (from x in dataManager.GetExcelSheet<BeastReputationRank>()
where x.RowId != 0
select x).ToImmutableDictionary((BeastReputationRank x) => x.RowId, (BeastReputationRank x) => x.RequiredReputation);
_questReputationRewards = dataManager.GetExcelSheet<Lumina.Excel.Sheets.Quest>().Where(delegate(Lumina.Excel.Sheets.Quest x)
{
foreach (KeyValuePair<uint, List<QuestInfo>> item2 in (from x in questData.GetAllByAlliedSociety(item)
where x.IsRepeatable
group x by x.IssuerDataId).ToDictionary((IGrouping<uint, QuestInfo> x) => x.Key, (IGrouping<uint, QuestInfo> x) => (from y in x
orderby y.AlliedSocietyQuestGroup == 3, y.QuestId
select y).ToList()))
int num2 = ((x.RowId == 0) ? 229482898 : 229482896);
while (true)
{
item2.Deconstruct(out var key, out var value);
uint issuerDataId = key;
List<QuestInfo> allQuests = value;
NpcData npcData = new NpcData
int num3 = num2;
int num4 = 229482899;
int num5 = num3;
switch ((num5 | num4) - (num5 & num4))
{
IssuerDataId = issuerDataId,
AllQuests = allQuests
};
if (_questsByAlliedSociety.TryGetValue(item, out List<NpcData> value2))
{
value2.Add(npcData);
continue;
case 0:
num2 = 229482896;
break;
case 3:
num2 = ((x.BeastTribe.RowId == 0) ? 229482898 : 229482897);
break;
case 2:
return x.BeastReputationValue > 0;
case 1:
return false;
}
Dictionary<EAlliedSociety, List<NpcData>> questsByAlliedSociety = _questsByAlliedSociety;
int num = 1;
List<NpcData> list = new List<NpcData>(num);
CollectionsMarshal.SetCount(list, num);
CollectionsMarshal.AsSpan(list)[0] = npcData;
questsByAlliedSociety[item] = list;
}
}).ToImmutableDictionary((Lumina.Excel.Sheets.Quest x) => x.RowId, (Lumina.Excel.Sheets.Quest x) => x.BeastReputationValue);
_maxRankByAlliedSociety = dataManager.GetExcelSheet<BeastTribe>().Where(delegate(BeastTribe x)
{
int num2 = ((x.RowId == 0) ? 1913982747 : 1913982745);
while (true)
{
int num3 = num2;
int num4 = 1913982747;
int num5 = num3;
int num6 = num5 + num4;
int num7 = num5 & num4;
switch (num6 - (num7 + num7))
{
case 1:
return _003C_003Ec._206A_200F_206E_202C_206F_202C_206D_202A_200B_202C_202A_202A_206E_200E_206D_200C_206E_206F_200E_200C_206E_206B_202C_200B_202D_206B_202A_206F_206D_200F_202D_200B_202D_206C_200F_202C_200C_206D_202A_202C_202E(_003C_003Ec._206F_206E_206D_202C_206B_200B_206A_202A_200F_202B_202D_202B_200E_202E_202D_206E_206D_200E_202E_206E_206A_206B_206F_202E_206D_200B_202A_202C_206E_200E_206D_206D_206B_200C_206F_206C_206C_206A_200C_202B_202E(typeof(EAlliedSociety).TypeHandle), (object)(byte)x.RowId);
case 2:
num2 = (x.Name.IsEmpty ? 1913982747 : 1913982746);
break;
case 3:
num2 = 1913982745;
break;
case 0:
return false;
}
}
}).ToImmutableDictionary((BeastTribe x) => (EAlliedSociety)x.RowId, (BeastTribe x) => x.MaxRank);
Dictionary<(EAlliedSociety, byte), QuestId> dictionary = new Dictionary<(EAlliedSociety, byte), QuestId>();
IEnumerator<EAlliedSociety> enumerator = (from x in Enum.GetValues<EAlliedSociety>()
where x != EAlliedSociety.None
select x).GetEnumerator();
try
{
while (_206F_202E_206C_200B_200E_202C_206B_202E_200E_200D_202D_200C_206E_200F_202E_200D_206C_200B_206F_206C_202A_202A_206B_202D_202D_202E_200C_200B_206C_200D_206C_206B_202C_202C_206B_200C_200B_202B_202A_206B_202E((IEnumerator)enumerator))
{
EAlliedSociety current = enumerator.Current;
IEnumerator<QuestInfo> enumerator2 = (from x in questData.GetAllByAlliedSociety(current)
where !x.IsRepeatable
select x).GetEnumerator();
try
{
while (_206F_202E_206C_200B_200E_202C_206B_202E_200E_200D_202D_200C_206E_200F_202E_200D_206C_200B_206F_206C_202A_202A_206B_202D_202D_202E_200C_200B_206C_200D_206C_206B_202C_202C_206B_200C_200B_202B_202A_206B_202E((IEnumerator)enumerator2))
{
QuestInfo current2 = enumerator2.Current;
byte b = (byte)current2.AlliedSocietyRank;
if (b > 0)
{
dictionary[(current, b)] = (QuestId)current2.QuestId;
}
}
}
finally
{
if (enumerator2 != null)
{
_200B_200B_200E_202D_200D_200D_202B_200F_202E_200C_202A_200B_202B_206B_202D_200D_206D_200C_206F_200B_202A_202A_200F_200B_206A_200C_206F_200C_206B_206B_200E_200E_206C_202B_202B_202E_202C_200E_202E_202C_202E((IDisposable)enumerator2);
}
}
}
}
finally
{
if (enumerator != null)
{
_200B_200B_200E_202D_200D_200D_202B_200F_202E_200C_202A_200B_202B_206B_202D_200D_206D_200C_206F_200B_202A_202A_200F_200B_206A_200C_206F_200C_206B_206B_200E_200E_206C_202B_202B_202E_202C_200E_202E_202C_202E((IDisposable)enumerator);
}
}
_rankUpQuests = dictionary.ToImmutableDictionary();
enumerator = (from x in Enum.GetValues<EAlliedSociety>()
where x != EAlliedSociety.None
select x).GetEnumerator();
try
{
while (_206F_202E_206C_200B_200E_202C_206B_202E_200E_200D_202D_200C_206E_200F_202E_200D_206C_200B_206F_206C_202A_202A_206B_202D_202D_202E_200C_200B_206C_200D_206C_206B_202C_202C_206B_200C_200B_202B_202A_206B_202E((IEnumerator)enumerator))
{
EAlliedSociety current3 = enumerator.Current;
foreach (KeyValuePair<uint, List<QuestInfo>> item in (from x in questData.GetAllByAlliedSociety(current3)
where x.IsRepeatable
group x by x.IssuerDataId).ToDictionary((IGrouping<uint, QuestInfo> x) => x.Key, (IGrouping<uint, QuestInfo> x) => (from y in x
orderby y.AlliedSocietyQuestGroup == 3, y.QuestId
select y).ToList()))
{
item.Deconstruct(out var key, out var value);
uint issuerDataId = key;
List<QuestInfo> allQuests = value;
NpcData npcData = new NpcData
{
IssuerDataId = issuerDataId,
AllQuests = allQuests
};
if (_questsByAlliedSociety.TryGetValue(current3, out List<NpcData> value2))
{
value2.Add(npcData);
continue;
}
Dictionary<EAlliedSociety, List<NpcData>> questsByAlliedSociety = _questsByAlliedSociety;
int num = 1;
List<NpcData> list = new List<NpcData>(num);
CollectionsMarshal.SetCount(list, num);
CollectionsMarshal.AsSpan(list)[0] = npcData;
questsByAlliedSociety[current3] = list;
}
}
}
finally
{
if (enumerator != null)
{
_200B_200B_200E_202D_200D_200D_202B_200F_202E_200C_202A_200B_202B_206B_202D_200D_206D_200C_206F_200B_202A_202A_200F_200B_206A_200C_206F_200C_206B_206B_200E_200E_206C_202B_202B_202E_202C_200E_202E_202C_202E((IDisposable)enumerator);
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public unsafe List<QuestId> GetAvailableAlliedSocietyQuests(EAlliedSociety alliedSociety)
{
byte rank = QuestManager.Instance()->BeastReputation[(int)(alliedSociety - 1)].Rank;
byte currentRank = (byte)(rank & 0x7F);
if (currentRank == 0)
int num = ((alliedSociety != EAlliedSociety.None) ? (-2074607472) : (-2074607467));
byte rank = default(byte);
byte currentRank = default(byte);
List<QuestId> list = default(List<QuestId>);
bool flag2 = default(bool);
byte dailyQuestSeed = default(byte);
List<NpcData> value = default(List<NpcData>);
NpcData current = default(NpcData);
bool flag = default(bool);
(uint, byte, bool, bool) key = default((uint, byte, bool, bool));
List<QuestId> value2 = default(List<QuestId>);
while (true)
{
return new List<QuestId>();
}
bool flag = (rank & 0x80) != 0;
byte dailyQuestSeed = QuestManager.Instance()->DailyQuestSeed;
List<QuestId> list = new List<QuestId>();
foreach (NpcData item in _questsByAlliedSociety[alliedSociety])
{
bool flag2 = item.AllQuests.All((QuestInfo x) => currentRank > x.AlliedSocietyRank);
(uint, byte, bool, bool) key = (item.IssuerDataId, dailyQuestSeed, flag2, flag);
if (_dailyQuests.TryGetValue(key, out List<QuestId> value))
int num2 = num;
int num3 = -2074607466;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
list.AddRange(value);
continue;
case 6:
{
rank = QuestManager.Instance()->BeastReputation[(int)(alliedSociety - 1)].Rank;
byte num11 = rank;
num3 = 127;
num4 = num11;
currentRank = (byte)(num4 + num3 - (num4 | num3));
num = ((currentRank != 0) ? (-2074607468) : (-2074607469));
break;
}
case 3:
return new List<QuestId>();
case 5:
return new List<QuestId>();
case 1:
return list;
case 0:
num = -2074607467;
break;
case 2:
{
byte num10 = rank;
num3 = 128;
num4 = num10;
flag2 = num4 + num3 - (num4 | num3) != 0;
dailyQuestSeed = QuestManager.Instance()->DailyQuestSeed;
list = new List<QuestId>();
num = (_questsByAlliedSociety.TryGetValue(alliedSociety, out value) ? (-2074607470) : (-2074607465));
break;
}
case 4:
{
using List<NpcData>.Enumerator enumerator = value.GetEnumerator();
num = -1740472784;
while (true)
{
int num7 = num;
num3 = -1740472781;
num4 = num7;
int num8 = num4 + num3;
int num9 = num4 & num3;
switch (num8 - (num9 + num9))
{
case 5:
num = -1740472784;
break;
case 1:
current = enumerator.Current;
flag = current.AllQuests.All((QuestInfo x) => currentRank > x.AlliedSocietyRank);
key = (current.IssuerDataId, dailyQuestSeed, flag, flag2);
num = ((!_dailyQuests.TryGetValue(key, out value2)) ? (-1740472783) : (-1740472781));
break;
case 3:
num = (enumerator.MoveNext() ? (-1740472782) : (-1740472777));
break;
case 0:
list.AddRange(value2);
num = -1740472784;
break;
case 2:
{
List<QuestId> list2 = CalculateAvailableQuests(current.AllQuests, dailyQuestSeed, flag, currentRank, flag2);
_202E_200E_206F_206E_202E_206C_206D_200B_200F_200C_206A_202A_200C_206F_206F_206E_206C_200D_206E_200D_200B_200D_206C_206B_200F_202B_206D_202A_200D_206E_206B_206A_200B_206D_200E_200E_202B_202B_206A_200E_202E((ILogger)_logger, 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>(832413821), new object[4]
{
alliedSociety,
dailyQuestSeed,
current.IssuerDataId,
string.Join(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>(1467939024), list2)
});
_dailyQuests[key] = list2;
list.AddRange(list2);
num = -1740472784;
break;
}
case 4:
return list;
}
}
}
}
}
}
public unsafe (byte CurrentRank, ushort CurrentValue, ushort MaxValue, bool IsMaxRank, bool IsAtCapacity)? GetReputationStatus(EAlliedSociety alliedSociety)
{
BeastReputationWork beastReputationWork = QuestManager.Instance()->BeastReputation[(int)(alliedSociety - 1)];
byte rank = beastReputationWork.Rank;
int num = 127;
int num2 = rank;
byte b = (byte)(num2 + num - (num2 | num));
int num3 = ((b != 0) ? 1618192737 : 1618192736);
while (true)
{
int num4 = num3;
num = 1618192737;
num2 = num4;
int num5 = num2 + num;
int num6 = num2 & num;
switch (num5 - (num6 + num6))
{
case 2:
goto IL_0081;
case 1:
return null;
case 0:
{
ushort value = beastReputationWork.Value;
ushort valueOrDefault = _reputationRequiredByRank.GetValueOrDefault(b, ushort.MaxValue);
byte valueOrDefault2 = _maxRankByAlliedSociety.GetValueOrDefault<EAlliedSociety, byte>(alliedSociety, 8);
bool item = b >= valueOrDefault2;
bool item2 = value >= valueOrDefault;
return (b, value, valueOrDefault, item, item2);
}
}
continue;
IL_0081:
num3 = 1618192736;
}
}
public QuestId? GetRankUpQuest(EAlliedSociety alliedSociety, byte currentRank)
{
return _rankUpQuests.GetValueOrDefault((alliedSociety, currentRank));
}
public ushort GetQuestReputationReward(QuestId questId)
{
return _questReputationRewards.GetValueOrDefault<uint, ushort>(_200D_202C_202A_206D_206E_200F_202A_202C_200C_202A_200C_202D_200F_200C_206F_206C_206B_206A_206C_200F_202A_200E_202A_206E_202D_202C_206F_200C_202B_206B_206C_206F_202B_206A_206F_202E_206F_206B_206B_206C_202E((ElementId)questId), 0);
}
public bool WouldOvercapReputation(QuestId questId)
{
IQuestInfo questInfo;
int num = ((!_questData.TryGetQuestInfo(questId, out questInfo)) ? 370818468 : 370818473);
QuestInfo questInfo2 = default(QuestInfo);
(byte, ushort, ushort, bool, bool)? reputationStatus = default((byte, ushort, ushort, bool, bool)?);
ushort item = default(ushort);
ushort item2 = default(ushort);
while (true)
{
int num2 = num;
int num3 = 370818477;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 7:
num = ((questInfo2.AlliedSociety != EAlliedSociety.None) ? 370818472 : 370818476);
break;
case 4:
questInfo2 = questInfo as QuestInfo;
num = ((questInfo2 != null) ? 370818474 : 370818468);
break;
case 3:
{
(byte, ushort, ushort, bool, bool) value = reputationStatus.Value;
item = value.Item2;
item2 = value.Item3;
num = ((!value.Item4) ? 370818475 : 370818469);
break;
}
case 8:
return false;
case 6:
{
ushort questReputationReward = GetQuestReputationReward(questId);
ushort num7 = item;
num3 = questReputationReward;
num4 = num7;
return (num4 | num3) + (num4 & num3) > item2;
}
case 1:
return false;
case 0:
return false;
case 9:
return false;
case 2:
num = 370818473;
break;
case 5:
reputationStatus = GetReputationStatus(questInfo2.AlliedSociety);
num = (reputationStatus.HasValue ? 370818478 : 370818477);
break;
}
List<QuestId> list2 = CalculateAvailableQuests(item.AllQuests, dailyQuestSeed, flag2, currentRank, flag);
_logger.LogInformation("Available for {Tribe} (Seed: {Seed}, Issuer: {IssuerId}): {Quests}", alliedSociety, dailyQuestSeed, item.IssuerDataId, string.Join(", ", list2));
_dailyQuests[key] = list2;
list.AddRange(list2);
}
return list;
}
private static List<QuestId> CalculateAvailableQuests(List<QuestInfo> allQuests, byte seed, bool outranksAll, byte currentRank, bool rankedUp)
{
List<QuestInfo> list = allQuests.Where((QuestInfo q) => IsEligible(q, currentRank, rankedUp)).ToList();
List<QuestInfo> list2 = new List<QuestInfo>();
if (list.Count == 0)
int num = ((list.Count != 0) ? (-1989985077) : (-1989985088));
int num12 = default(int);
int num20 = default(int);
int num6 = default(int);
Rng rng = default(Rng);
int num5 = default(int);
int num15 = default(int);
int num16 = default(int);
int num10 = default(int);
while (true)
{
return new List<QuestId>();
}
Rng rng = new Rng(seed);
if (outranksAll)
{
int num = 0;
for (int num2 = Math.Min(list.Count, 3); num < num2; num++)
int num2 = num;
int num3 = -1989985086;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
int num3 = rng.Next(list.Count);
while (list2.Contains(list[num3]))
{
num3 = (num3 + 1) % list.Count;
}
list2.Add(list[num3]);
case 6:
num = ((num12 < num20) ? (-1989985082) : (-1989985085));
break;
case 17:
num6 = list.FindIndex((QuestInfo q) => q.AlliedSocietyQuestGroup == 3);
num = ((num6 < 0) ? (-1989985071) : (-1989985076));
break;
case 9:
rng = new Rng(seed);
num = ((!outranksAll) ? (-1989985069) : (-1989985074));
break;
case 11:
num = (list2.Contains(list[num5]) ? (-1989985080) : (-1989985087));
break;
case 2:
return new List<QuestId>();
case 19:
num6 = list.Count;
num = -1989985083;
break;
case 7:
num15 = list2.Count;
num16 = _202C_206C_206A_206B_206A_200B_206E_206A_202E_200E_206D_206E_200B_200B_206B_206D_206E_200C_202E_206E_200E_202B_206F_202A_206D_206F_200D_206B_202A_200D_206A_206C_206F_202B_202B_200D_206C_202C_206A_202A_202E(num6, 3);
num = -1989985086;
break;
case 3:
{
list2.Add(list[num5]);
int num21 = num15;
num3 = 1;
num4 = num21;
int num22 = num4 ^ num3;
int num23 = num4 & num3;
num15 = num22 + (num23 + num23);
num = -1989985086;
break;
}
case 14:
list2.Add(list[num6 + rng.Next(list.Count - num6)]);
num = -1989985083;
break;
case 16:
num = (list2.Contains(list[num10]) ? (-1989985072) : (-1989985078));
break;
case 1:
num = -1989985075;
break;
case 12:
num12 = 0;
num20 = _202C_206C_206A_206B_206A_200B_206E_206A_202E_200E_206D_206E_200B_200B_206B_206D_206E_200C_202E_206E_200E_202B_206F_202A_206D_206F_200D_206B_202A_200D_206A_206C_206F_202B_202B_200D_206C_202C_206A_202A_202E(list.Count, 3);
num = -1989985084;
break;
case 4:
num10 = rng.Next(list.Count);
num = -1989985070;
break;
case 18:
{
int num17 = num10;
num3 = 1;
num4 = num17;
int num18 = num4 ^ num3;
int num19 = num4 & num3;
num10 = (num18 + (num19 + num19)) % list.Count;
num = -1989985070;
break;
}
case 0:
num = ((num15 < num16) ? (-1989985081) : (-1989985075));
break;
case 15:
return list2.Select((QuestInfo x) => (QuestId)x.QuestId).ToList();
case 13:
num = -1989985088;
break;
case 8:
{
list2.Add(list[num10]);
int num11 = num12;
num3 = 1;
num4 = num11;
int num13 = num4 ^ num3;
int num14 = num4 & num3;
num12 = num13 + (num14 + num14);
num = -1989985084;
break;
}
case 10:
{
int num7 = num5;
num3 = 1;
num4 = num7;
int num8 = num4 ^ num3;
int num9 = num4 & num3;
num5 = (num8 + (num9 + num9)) % num6;
num = -1989985079;
break;
}
case 5:
num5 = rng.Next(num6);
num = -1989985079;
break;
}
}
else
{
int num4 = list.FindIndex((QuestInfo q) => q.AlliedSocietyQuestGroup == 3);
if (num4 >= 0)
{
list2.Add(list[num4 + rng.Next(list.Count - num4)]);
}
else
{
num4 = list.Count;
}
int num5 = list2.Count;
for (int num6 = Math.Min(num4, 3); num5 < num6; num5++)
{
int num7 = rng.Next(num4);
while (list2.Contains(list[num7]))
{
num7 = (num7 + 1) % num4;
}
list2.Add(list[num7]);
}
}
return list2.Select((QuestInfo x) => (QuestId)x.QuestId).ToList();
}
private static bool IsEligible(QuestInfo questInfo, byte currentRank, bool rankedUp)
{
if (!rankedUp)
int num = (rankedUp ? (-1485940211) : (-1485940210));
while (true)
{
return questInfo.AlliedSocietyRank <= currentRank;
int num2 = num;
int num3 = -1485940212;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 1:
return questInfo.AlliedSocietyRank == currentRank;
case 2:
return questInfo.AlliedSocietyRank <= currentRank;
case 0:
goto IL_0058;
}
continue;
IL_0058:
num = -1485940210;
}
return questInfo.AlliedSocietyRank == currentRank;
}
static bool _206F_202E_206C_200B_200E_202C_206B_202E_200E_200D_202D_200C_206E_200F_202E_200D_206C_200B_206F_206C_202A_202A_206B_202D_202D_202E_200C_200B_206C_200D_206C_206B_202C_202C_206B_200C_200B_202B_202A_206B_202E(IEnumerator P_0)
{
return P_0.MoveNext();
}
static void _200B_200B_200E_202D_200D_200D_202B_200F_202E_200C_202A_200B_202B_206B_202D_200D_206D_200C_206F_200B_202A_202A_200F_200B_206A_200C_206F_200C_206B_206B_200E_200E_206C_202B_202B_202E_202C_200E_202E_202C_202E(IDisposable P_0)
{
P_0.Dispose();
}
static void _202E_200E_206F_206E_202E_206C_206D_200B_200F_200C_206A_202A_200C_206F_206F_206E_206C_200D_206E_200D_200B_200D_206C_206B_200F_202B_206D_202A_200D_206E_206B_206A_200B_206D_200E_200E_202B_202B_206A_200E_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogDebug(P_1, P_2);
}
static ushort _200D_202C_202A_206D_206E_200F_202A_202C_200C_202A_200C_202D_200F_200C_206F_206C_206B_206A_206C_200F_202A_200E_202A_206E_202D_202C_206F_200C_202B_206B_206C_206F_202B_206A_206F_202E_206F_206B_206B_206C_202E(ElementId P_0)
{
return P_0.Value;
}
static int _202C_206C_206A_206B_206A_200B_206E_206A_202E_200E_206D_206E_200B_200B_206B_206D_206E_200C_202E_206E_200E_202B_206F_202A_206D_206F_200D_206B_202A_200D_206A_206C_206F_202B_202B_200D_206C_202C_206A_202A_202E(int P_0, int P_1)
{
return Math.Min(P_0, P_1);
}
}

View file

@ -2,52 +2,93 @@ using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Runtime.CompilerServices;
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Client.System.Framework;
using FFXIVClientStructs.FFXIV.Client.System.Memory;
using FFXIVClientStructs.FFXIV.Client.System.String;
using FFXIVClientStructs.FFXIV.Client.UI;
using LLib;
using Lumina.Excel.Sheets;
using Microsoft.Extensions.Logging;
using Questionable.Model.Questing;
namespace Questionable.Functions;
internal sealed class ChatFunctions
{
private delegate void ProcessChatBoxDelegate(nint uiModule, nint message, nint unused, byte a4);
[StructLayout(LayoutKind.Explicit)]
private readonly struct ChatPayload : IDisposable
[Serializable]
[CompilerGenerated]
private sealed class _003C_003Ec
{
[FieldOffset(0)]
private readonly nint textPtr;
public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec();
[FieldOffset(16)]
private readonly ulong textLen;
public static Func<Emote, bool> _003C_003E9__3_0;
[FieldOffset(8)]
private readonly ulong unk1;
public static Func<Emote, bool> _003C_003E9__3_1;
[FieldOffset(24)]
private readonly ulong unk2;
public static Func<Emote, (uint RowId, string Command)> _003C_003E9__3_2;
internal ChatPayload(byte[] stringBytes)
public static Func<(uint RowId, string Command), bool> _003C_003E9__3_3;
public static Func<(uint RowId, string Command), EEmote> _003C_003E9__3_4;
public static Func<(uint RowId, string Command), string> _003C_003E9__3_5;
internal bool _003C_002Ector_003Eb__3_0(Emote x)
{
textPtr = Marshal.AllocHGlobal(stringBytes.Length + 30);
Marshal.Copy(stringBytes, 0, textPtr, stringBytes.Length);
Marshal.WriteByte(textPtr + stringBytes.Length, 0);
textLen = (ulong)(stringBytes.Length + 1);
unk1 = 64uL;
unk2 = 0uL;
return x.RowId != 0;
}
public void Dispose()
internal bool _003C_002Ector_003Eb__3_1(Emote x)
{
Marshal.FreeHGlobal(textPtr);
return x.TextCommand.IsValid;
}
internal (uint RowId, string Command) _003C_002Ector_003Eb__3_2(Emote x)
{
return (RowId: x.RowId, Command: x.TextCommand.Value.Command.ToString());
}
internal bool _003C_002Ector_003Eb__3_3((uint RowId, string Command) x)
{
int num = (_200E_206A_206F_202E_206D_206E_206F_202B_202B_206A_200D_206B_202B_200D_206D_200C_202B_200E_202B_200C_200C_206F_202D_206C_200D_206D_202C_206B_202E_206D_200C_202D_202B_206B_200C_206F_202B_202D_206B_202D_202E(x.Command) ? 1902035638 : 1902035637);
while (true)
{
int num2 = num;
int num3 = 1902035639;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 1:
return false;
case 2:
return _206E_202D_200C_202C_202E_200D_206C_202A_202D_206C_206A_202B_206D_202E_202B_200F_206F_206D_206F_206F_200D_206A_202E_202A_206A_206A_202D_200E_206B_206E_206B_202B_206C_202B_206B_200E_206B_202A_206F_206C_202E(x.Command, '/');
case 0:
goto IL_005d;
}
continue;
IL_005d:
num = 1902035637;
}
}
internal EEmote _003C_002Ector_003Eb__3_4((uint RowId, string Command) x)
{
return (EEmote)x.RowId;
}
internal string _003C_002Ector_003Eb__3_5((uint RowId, string Command) x)
{
return x.Command;
}
static bool _200E_206A_206F_202E_206D_206E_206F_202B_202B_206A_200D_206B_202B_200D_206D_200C_202B_200E_202B_200C_200C_206F_202D_206C_200D_206D_202C_206B_202E_206D_200C_202D_202B_206B_200C_206F_202B_202D_206B_202D_202E(string P_0)
{
return string.IsNullOrEmpty(P_0);
}
static bool _206E_202D_200C_202C_202E_200D_206C_202A_202D_206C_206A_202B_206D_202E_202B_200F_206F_206D_206F_206F_200D_206A_202E_202A_206A_206A_202D_200E_206B_206E_206B_202B_206C_202B_206B_200E_206B_202A_206F_206C_202E(string P_0, char P_1)
{
return P_0.StartsWith(P_1);
}
}
@ -57,83 +98,115 @@ internal sealed class ChatFunctions
private readonly ITargetManager _targetManager;
private readonly ILogger<ChatFunctions> _logger;
private readonly ProcessChatBoxDelegate _processChatBox;
public ChatFunctions(ISigScanner sigScanner, IDataManager dataManager, GameFunctions gameFunctions, ITargetManager targetManager, ILogger<ChatFunctions> logger)
public ChatFunctions(IDataManager dataManager, GameFunctions gameFunctions, ITargetManager targetManager)
{
_gameFunctions = gameFunctions;
_targetManager = targetManager;
_logger = logger;
_processChatBox = Marshal.GetDelegateForFunctionPointer<ProcessChatBoxDelegate>(UIModule.Addresses.ProcessChatBoxEntry.Value);
_emoteCommands = (from x in dataManager.GetExcelSheet<Emote>()
where x.RowId != 0
where x.TextCommand.IsValid
select (RowId: x.RowId, Command: x.TextCommand.Value.Command.ToString()) into x
where !string.IsNullOrEmpty(x.Command) && x.Command.StartsWith('/')
select x).ToDictionary<(uint, string), EEmote, string>(((uint RowId, string Command) x) => (EEmote)x.RowId, ((uint RowId, string Command) x) => x.Command).AsReadOnly();
select (RowId: x.RowId, Command: x.TextCommand.Value.Command.ToString())).Where<(uint, string)>(delegate((uint RowId, string Command) x)
{
int num = (_003C_003Ec._200E_206A_206F_202E_206D_206E_206F_202B_202B_206A_200D_206B_202B_200D_206D_200C_202B_200E_202B_200C_200C_206F_202D_206C_200D_206D_202C_206B_202E_206D_200C_202D_202B_206B_200C_206F_202B_202D_206B_202D_202E(x.Command) ? 1902035638 : 1902035637);
while (true)
{
int num2 = num;
int num3 = 1902035639;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 1:
return false;
case 2:
return _003C_003Ec._206E_202D_200C_202C_202E_200D_206C_202A_202D_206C_206A_202B_206D_202E_202B_200F_206F_206D_206F_206F_200D_206A_202E_202A_206A_206A_202D_200E_206B_206E_206B_202B_206C_202B_206B_200E_206B_202A_206F_206C_202E(x.Command, '/');
case 0:
goto IL_005d;
}
continue;
IL_005d:
num = 1902035637;
}
}).ToDictionary<(uint, string), EEmote, string>(((uint RowId, string Command) x) => (EEmote)x.RowId, ((uint RowId, string Command) x) => x.Command).AsReadOnly();
}
private unsafe void SendMessageUnsafe(byte[] message)
public static void ExecuteCommand(string command)
{
nint uIModule = (nint)Framework.Instance()->GetUIModule();
using ChatPayload structure = new ChatPayload(message);
nint num = Marshal.AllocHGlobal(400);
Marshal.StructureToPtr(structure, num, fDeleteOld: false);
_processChatBox(uIModule, num, IntPtr.Zero, 0);
Marshal.FreeHGlobal(num);
}
private void SendMessage(string message)
{
_logger.LogDebug("Attempting to send chat message '{Message}'", message);
byte[] bytes = Encoding.UTF8.GetBytes(message);
if (bytes.Length == 0)
int num = (_202D_202B_202A_202C_200E_206F_200C_206F_200B_202E_202C_200F_202A_200D_206C_202B_200B_206A_206B_200D_202A_206E_202A_202C_202B_206D_202B_202B_200D_206A_206D_202D_202D_206D_200F_200B_202D_202D_200B_202D_202E(command, '/') ? 1153841809 : 1153841810);
while (true)
{
throw new ArgumentException("message is empty", "message");
}
if (bytes.Length > 500)
{
throw new ArgumentException("message is longer than 500 bytes", "message");
}
if (message.Length != SanitiseText(message).Length)
{
throw new ArgumentException("message contained invalid characters", "message");
}
SendMessageUnsafe(bytes);
}
private unsafe string SanitiseText(string text)
{
Utf8String* intPtr = Utf8String.FromString(text);
intPtr->SanitizeString(AllowedEntities.UppercaseLetters | AllowedEntities.LowercaseLetters | AllowedEntities.Numbers | AllowedEntities.SpecialCharacters | AllowedEntities.CharacterList | AllowedEntities.OtherCharacters | AllowedEntities.Payloads | AllowedEntities.Unknown9, null);
string result = intPtr->ToString();
intPtr->Dtor();
IMemorySpace.Free(intPtr);
return result;
}
public void ExecuteCommand(string command)
{
if (command.StartsWith('/'))
{
SendMessage(command);
int num2 = num;
int num3 = 1153841811;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
_200F_202B_200B_202A_202E_206A_202C_202B_206A_200E_202B_200C_200F_200D_206C_202B_206C_202B_206A_200B_202E_206C_200C_202E_206D_200B_200E_206C_206E_202A_206B_206F_200E_206A_202E_206C_206C_206C_202D_200C_202E(command);
return;
case 1:
return;
case 0:
goto IL_0052;
}
continue;
IL_0052:
num = 1153841810;
}
}
public void UseEmote(uint dataId, EEmote emote)
[MethodImpl(MethodImplOptions.NoInlining)]
public bool UseEmote(uint dataId, EEmote emote)
{
IGameObject gameObject = _gameFunctions.FindObjectByDataId(dataId);
if (gameObject != null)
int num = ((gameObject == null) ? (-888767094) : (-888767093));
while (true)
{
_targetManager.Target = gameObject;
ExecuteCommand(_emoteCommands[emote] + " motion");
int num2 = num;
int num3 = -888767094;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
goto IL_005b;
case 1:
_202A_200D_202E_206A_202D_200E_202D_202B_206F_200F_202C_200B_200D_200E_202A_200B_206A_206F_200E_202C_206C_206E_206F_202A_202A_206E_200F_202A_200D_200F_206C_202A_206D_206F_200F_200B_202B_206B_200E_200F_202E(_targetManager, gameObject);
ExecuteCommand(_206D_206D_200D_206B_202D_200F_202C_206F_206B_206B_200D_206B_206E_202D_202A_206E_206E_206B_200D_206F_202C_206B_202B_200F_202C_206C_202A_206C_202B_200F_206B_202A_202D_200F_206F_202C_206C_200F_206A_206A_202E(_emoteCommands[emote], 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>(-1428224074)));
return true;
case 0:
return false;
}
continue;
IL_005b:
num = -888767093;
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public void UseEmote(EEmote emote)
{
ExecuteCommand(_emoteCommands[emote] + " motion");
ExecuteCommand(_206D_206D_200D_206B_202D_200F_202C_206F_206B_206B_200D_206B_206E_202D_202A_206E_206E_206B_200D_206F_202C_206B_202B_200F_202C_206C_202A_206C_202B_200F_206B_202A_202D_200F_206F_202C_206C_200F_206A_206A_202E(_emoteCommands[emote], 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>(-1428224074)));
}
static bool _202D_202B_202A_202C_200E_206F_200C_206F_200B_202E_202C_200F_202A_200D_206C_202B_200B_206A_206B_200D_202A_206E_202A_202C_202B_206D_202B_202B_200D_206A_206D_202D_202D_206D_200F_200B_202D_202D_200B_202D_202E(string P_0, char P_1)
{
return P_0.StartsWith(P_1);
}
static void _200F_202B_200B_202A_202E_206A_202C_202B_206A_200E_202B_200C_200F_200D_206C_202B_206C_202B_206A_200B_202E_206C_200C_202E_206D_200B_200E_206C_206E_202A_206B_206F_200E_206A_202E_206C_206C_206C_202D_200C_202E(string P_0)
{
ChatHelper.SendCommand(P_0);
}
static void _202A_200D_202E_206A_202D_200E_202D_202B_206F_200F_202C_200B_200D_200E_202A_200B_206A_206F_200E_202C_206C_206E_206F_202A_202A_206E_200F_202A_200D_200F_206C_202A_206D_206F_200F_200B_202B_206B_200E_200F_202E(ITargetManager P_0, IGameObject P_1)
{
P_0.Target = P_1;
}
static string _206D_206D_200D_206B_202D_200F_202C_206F_206B_206B_200D_206B_206E_202D_202A_206E_206E_206B_200D_206F_202C_206B_202B_200F_202C_206C_202A_206C_202B_200F_206B_202A_202D_200F_206F_202C_206C_200F_206A_206A_202E(string P_0, string P_1)
{
return P_0 + P_1;
}
}

View file

@ -1,5 +1,8 @@
using System;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text.RegularExpressions;
using Dalamud.Game.Text.SeStringHandling;
using Dalamud.Plugin.Services;
using Dalamud.Utility;
using LLib;
@ -8,6 +11,7 @@ using Lumina.Excel.Sheets;
using Lumina.Text.ReadOnly;
using Microsoft.Extensions.Logging;
using Questionable.Model;
using Questionable.Model.Questing;
namespace Questionable.Functions;
@ -26,78 +30,290 @@ internal sealed class ExcelFunctions
public StringOrRegex GetDialogueText(Questionable.Model.Quest? currentQuest, string? excelSheetName, string key, bool isRegex)
{
ReadOnlySeString? rawDialogueText = GetRawDialogueText(currentQuest, excelSheetName, key);
if (isRegex)
int num = ((!isRegex) ? 1072501571 : 1072501572);
while (true)
{
return new StringOrRegex(rawDialogueText.ToRegex());
int num2 = num;
int num3 = 1072501568;
int num4 = num2;
object str;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = 1072501572;
break;
case 3:
num = (rawDialogueText.HasValue ? 1072501570 : 1072501569);
break;
case 1:
str = null;
goto IL_009e;
case 2:
str = _200D_206F_206A_202A_202D_200D_206B_202E_206C_202D_202A_200C_202E_200C_202B_200E_200C_202E_206C_202D_200C_202A_200C_200F_200C_200E_200D_206A_202E_202E_202B_200F_200C_206E_200D_202B_202A_200F_200D_206D_202E(rawDialogueText.GetValueOrDefault());
goto IL_009e;
case 4:
{
return new StringOrRegex(_202D_202D_206D_202A_206F_202D_200F_206A_200B_206D_206E_200B_206C_202B_202B_200C_206B_200D_206C_202D_206F_202C_200E_206D_206B_200E_200E_200B_206B_202C_206D_202B_200B_206C_202C_206D_202A_206F_202D_206C_202E(rawDialogueText));
}
IL_009e:
return new StringOrRegex((string?)str);
}
}
return new StringOrRegex(rawDialogueText?.WithCertainMacroCodeReplacements());
}
[MethodImpl(MethodImplOptions.NoInlining)]
public ReadOnlySeString? GetRawDialogueText(Questionable.Model.Quest? currentQuest, string? excelSheetName, string key)
{
if (currentQuest != null && excelSheetName == null)
int num = ((currentQuest == null) ? 29428304 : 29428309);
Lumina.Excel.Sheets.Quest? rowOrDefault = default(Lumina.Excel.Sheets.Quest?);
while (true)
{
Lumina.Excel.Sheets.Quest? rowOrDefault = _dataManager.GetExcelSheet<Lumina.Excel.Sheets.Quest>().GetRowOrDefault((uint)(currentQuest.Id.Value + 65536));
if (!rowOrDefault.HasValue)
int num2 = num;
int num3 = 29428305;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
_logger.LogError("Could not find quest row for {QuestId}", currentQuest.Id);
return null;
case 0:
num = 29428309;
break;
case 2:
rowOrDefault = _dataManager.GetExcelSheet<Lumina.Excel.Sheets.Quest>().GetRowOrDefault((uint)(_206E_202E_206E_200E_206E_200E_202C_200F_206E_206C_200C_202E_200B_202B_206E_200B_206D_202C_206E_206F_200E_202B_200B_202D_206D_206C_202A_200F_200C_206C_200E_206C_202C_200B_200D_202A_200E_200F_206F_200E_202E(currentQuest.Id) + 65536));
num = (rowOrDefault.HasValue ? 29428308 : 29428306);
break;
case 4:
num = ((excelSheetName != null) ? 29428304 : 29428307);
break;
case 5:
{
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(7, 2);
defaultInterpolatedStringHandler.AppendLiteral(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>(-1117536650));
defaultInterpolatedStringHandler.AppendFormatted(_206E_202E_206E_200E_206E_200E_202C_200F_206E_206C_200C_202E_200B_202B_206E_200B_206D_202C_206E_206F_200E_202B_200B_202D_206D_206C_202A_200F_200C_206C_200E_206C_202C_200B_200D_202A_200E_200F_206F_200E_202E(currentQuest.Id) / 100, 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>(1475235233));
defaultInterpolatedStringHandler.AppendLiteral(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>(503298330));
defaultInterpolatedStringHandler.AppendFormatted(rowOrDefault.Value.Id);
excelSheetName = defaultInterpolatedStringHandler.ToStringAndClear();
num = 29428304;
break;
}
case 3:
_202A_206D_200D_202A_200D_202C_200F_206C_202E_202A_200E_206B_200C_200E_200B_202D_200E_200F_202B_202A_200F_206C_200B_200F_200B_206A_200F_202C_200B_206D_202B_206A_202E_200F_202B_200E_202C_200D_206F_200F_202E((ILogger)_logger, 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>(1164547809), new object[1] { currentQuest.Id });
return null;
case 1:
_200B_200E_202A_202E_206D_206D_200D_202D_206E_206D_206E_206D_206E_202C_202A_206B_202A_206B_206F_206B_202D_202D_200B_202A_206F_206B_206B_202C_206D_202E_202C_206E_200E_206A_202E_202C_202D_200C_200C_206D_202E((object)excelSheetName, 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>(-1394089071));
try
{
IDataManager dataManager = _dataManager;
string name = excelSheetName;
return dataManager.GetExcelSheet<QuestDialogueText>(null, name).Cast<QuestDialogueText?>().FirstOrDefault((QuestDialogueText? x) => x.Value.Key == key)?.Value;
}
catch (SheetNotFoundException ex)
{
throw _202C_202B_202E_200D_202B_206A_200D_206B_200C_200C_206F_200D_200C_206A_200D_200F_200D_202B_206B_200E_206B_200D_206C_200B_206E_206D_200C_200C_200E_206C_206B_206C_202A_206E_206F_202B_202E_202D_206D_202C_202E(_202E_202B_200D_206E_202D_200B_206E_202E_206C_206E_206E_202C_200B_200C_202C_206C_206E_200B_200D_206F_206E_206E_206A_206E_206E_206E_202C_202C_206A_200D_200C_200B_200D_200C_206B_202D_206E_206D_202B_206A_202E(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>(517692364), excelSheetName, 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>(-1767050032)), (Exception)ex);
}
}
excelSheetName = $"quest/{currentQuest.Id.Value / 100:000}/{rowOrDefault.Value.Id}";
}
ArgumentNullException.ThrowIfNull(excelSheetName, "excelSheetName");
try
{
IDataManager dataManager = _dataManager;
string name = excelSheetName;
return dataManager.GetExcelSheet<QuestDialogueText>(null, name).Cast<QuestDialogueText?>().FirstOrDefault((QuestDialogueText? x) => x.Value.Key == key)?.Value;
}
catch (SheetNotFoundException innerException)
{
throw new SheetNotFoundException("Sheet '" + excelSheetName + "' not found", innerException);
}
}
public StringOrRegex GetDialogueTextByRowId(string? excelSheet, uint rowId, bool isRegex)
{
ReadOnlySeString? rawDialogueTextByRowId = GetRawDialogueTextByRowId(excelSheet, rowId);
if (isRegex)
int num = ((!isRegex) ? 22562861 : 22562856);
object str;
while (true)
{
return new StringOrRegex(rawDialogueTextByRowId.ToRegex());
}
return new StringOrRegex(rawDialogueTextByRowId?.ToDalamudString().ToString());
}
public ReadOnlySeString? GetRawDialogueTextByRowId(string? excelSheet, uint rowId)
{
bool flag;
switch (excelSheet)
{
case "GimmickYesNo":
return _dataManager.GetExcelSheet<GimmickYesNo>().GetRowOrDefault(rowId)?.Message;
case "Warp":
return _dataManager.GetExcelSheet<Warp>().GetRowOrDefault(rowId)?.Name;
case "Addon":
return _dataManager.GetExcelSheet<Addon>().GetRowOrDefault(rowId)?.Text;
case "EventPathMove":
return _dataManager.GetExcelSheet<EventPathMove>().GetRowOrDefault(rowId)?.Unknown0;
case "GilShop":
return _dataManager.GetExcelSheet<GilShop>().GetRowOrDefault(rowId)?.Name;
default:
if (excelSheet != null)
int num2 = num;
int num3 = 22562857;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
flag = false;
default:
continue;
case 0:
str = null;
break;
case 1:
return new StringOrRegex(_202D_202D_206D_202A_206F_202D_200F_206A_200B_206D_206E_200B_206C_202B_202B_200C_206B_200D_206C_202D_206F_202C_200E_206D_206B_200E_200E_200B_206B_202C_206D_202B_200B_206C_202C_206D_202A_206F_202D_206C_202E(rawDialogueTextByRowId));
case 4:
num = (rawDialogueTextByRowId.HasValue ? 22562858 : 22562857);
continue;
case 2:
num = 22562856;
continue;
case 3:
str = _202E_200B_206D_206C_206E_202A_200E_202B_206B_206C_202A_200C_202E_206E_206A_206E_202E_206F_202B_200D_202D_206A_202D_200C_200B_206A_202D_206E_206E_200C_200F_202A_200F_206E_206A_200B_202C_202E_202D_202E((object)_202E_206E_206A_206A_206E_200F_202D_200E_206E_200E_200D_200D_200E_202B_200B_200B_206C_202A_206C_200C_200B_200F_202D_200E_206D_200B_206E_202A_202A_206E_206C_206C_200B_202C_200B_206F_200D_202D_200E_206C_202E(rawDialogueTextByRowId.GetValueOrDefault()));
break;
}
goto case "ContentTalk";
case "ContentTalk":
flag = true;
break;
}
if (flag)
return new StringOrRegex((string?)str);
}
[MethodImpl(MethodImplOptions.NoInlining)]
public ReadOnlySeString? GetRawDialogueTextByRowId(string? excelSheet, uint rowId)
{
int num = ((!_200B_202C_200E_206D_202B_206C_206B_206E_206F_206F_202D_200D_202C_206A_202D_200E_206E_206D_200E_200B_202C_200F_200D_202B_202E_200E_200D_200D_202B_206F_202A_206C_206B_206D_200C_200F_202B_200C_206F_200C_202E(excelSheet, 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>(-1570338980))) ? (-409733808) : (-409733813));
GilShop? rowOrDefault3 = default(GilShop?);
Addon? rowOrDefault4 = default(Addon?);
ContentTalk? rowOrDefault = default(ContentTalk?);
bool flag = default(bool);
EventPathMove? rowOrDefault6 = default(EventPathMove?);
Warp? rowOrDefault5 = default(Warp?);
GimmickYesNo? rowOrDefault2 = default(GimmickYesNo?);
while (true)
{
return _dataManager.GetExcelSheet<ContentTalk>().GetRowOrDefault(rowId)?.Text;
int num2 = num;
int num3 = -409733800;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 3:
rowOrDefault3 = _dataManager.GetExcelSheet<GilShop>().GetRowOrDefault(rowId);
num = (rowOrDefault3.HasValue ? (-409733798) : (-409733820));
break;
case 11:
num = ((excelSheet != null) ? (-409733821) : (-409733807));
break;
case 22:
return rowOrDefault4.GetValueOrDefault().Text;
case 5:
rowOrDefault = _dataManager.GetExcelSheet<ContentTalk>().GetRowOrDefault(rowId);
num = (rowOrDefault.HasValue ? (-409733793) : (-409733800));
break;
case 21:
rowOrDefault4 = _dataManager.GetExcelSheet<Addon>().GetRowOrDefault(rowId);
num = (rowOrDefault4.HasValue ? (-409733810) : (-409733816));
break;
case 0:
return null;
case 18:
num = ((!_200B_202C_200E_206D_202B_206C_206B_206E_206F_206F_202D_200D_202C_206A_202D_200E_206E_206D_200E_200B_202C_200F_200D_202B_202E_200E_200D_200D_202B_206F_202A_206C_206B_206D_200C_200F_202B_200C_206F_200C_202E(excelSheet, 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>(1839428582))) ? (-409733801) : (-409733797));
break;
case 27:
flag = false;
num = -409733803;
break;
case 6:
return rowOrDefault6.GetValueOrDefault().Unknown0;
case 10:
num = -409733813;
break;
case 9:
flag = true;
num = -409733803;
break;
case 2:
return rowOrDefault3.GetValueOrDefault().Name;
case 24:
throw _206A_202E_206F_200C_206F_202E_202C_202B_202A_206C_200C_206F_200E_206B_200E_202E_202E_202D_200B_200B_200F_206B_202D_202C_206F_206F_200D_200C_202C_202B_206C_200B_202C_200C_202B_206A_202E_206A_200B_206A_202E(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>(-1185562918), _206C_206C_200E_200C_206A_200F_202A_206A_206A_202D_206E_206A_200D_200D_206E_202B_200B_200B_200D_206F_200B_206F_206D_200F_202D_206E_202D_206D_202C_206D_200B_206D_206E_200C_206E_206D_206A_206B_202A_206F_202E(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>(2034463000), excelSheet));
case 4:
return null;
case 13:
num = ((!flag) ? (-409733824) : (-409733795));
break;
case 14:
num = ((!_200B_202C_200E_206D_202B_206C_206B_206E_206F_206F_202D_200D_202C_206A_202D_200E_206E_206D_200E_200B_202C_200F_200D_202B_202E_200E_200D_200D_202B_206F_202A_206C_206B_206D_200C_200F_202B_200C_206F_200C_202E(excelSheet, 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>(1204948289))) ? (-409733814) : (-409733804));
break;
case 8:
num = ((!_200B_202C_200E_206D_202B_206C_206B_206E_206F_206F_202D_200D_202C_206A_202D_200E_206E_206D_200E_200B_202C_200F_200D_202B_202E_200E_200D_200D_202B_206F_202A_206C_206B_206D_200C_200F_202B_200C_206F_200C_202E(excelSheet, 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>(1428251349))) ? (-409733812) : (-409733822));
break;
case 12:
rowOrDefault6 = _dataManager.GetExcelSheet<EventPathMove>().GetRowOrDefault(rowId);
num = (rowOrDefault6.HasValue ? (-409733794) : (-409733823));
break;
case 1:
return rowOrDefault5.GetValueOrDefault().Name;
case 23:
return null;
case 26:
rowOrDefault5 = _dataManager.GetExcelSheet<Warp>().GetRowOrDefault(rowId);
num = (rowOrDefault5.HasValue ? (-409733799) : (-409733809));
break;
case 16:
return null;
case 17:
return rowOrDefault2.GetValueOrDefault().Message;
case 20:
num = ((!_200B_202C_200E_206D_202B_206C_206B_206E_206F_206F_202D_200D_202C_206A_202D_200E_206E_206D_200E_200B_202C_200F_200D_202B_202E_200E_200D_200D_202B_206F_202A_206C_206B_206D_200C_200F_202B_200C_206F_200C_202E(excelSheet, 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>(322628157))) ? (-409733802) : (-409733811));
break;
case 15:
num = (_200B_202C_200E_206D_202B_206C_206B_206E_206F_206F_202D_200D_202C_206A_202D_200E_206E_206D_200E_200B_202C_200F_200D_202B_202E_200E_200D_200D_202B_206F_202A_206C_206B_206D_200C_200F_202B_200C_206F_200C_202E(excelSheet, 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>(492487113)) ? (-409733807) : (-409733805));
break;
case 19:
rowOrDefault2 = _dataManager.GetExcelSheet<GimmickYesNo>().GetRowOrDefault(rowId);
num = (rowOrDefault2.HasValue ? (-409733815) : (-409733796));
break;
case 7:
return rowOrDefault.GetValueOrDefault().Text;
case 28:
return null;
case 25:
return null;
}
}
throw new ArgumentOutOfRangeException("excelSheet", "Unsupported excel sheet " + excelSheet);
}
static Regex _202D_202D_206D_202A_206F_202D_200F_206A_200B_206D_206E_200B_206C_202B_202B_200C_206B_200D_206C_202D_206F_202C_200E_206D_206B_200E_200E_200B_206B_202C_206D_202B_200B_206C_202C_206D_202A_206F_202D_206C_202E(ReadOnlySeString? P_0)
{
return P_0.ToRegex();
}
static string _200D_206F_206A_202A_202D_200D_206B_202E_206C_202D_202A_200C_202E_200C_202B_200E_200C_202E_206C_202D_200C_202A_200C_200F_200C_200E_200D_206A_202E_202E_202B_200F_200C_206E_200D_202B_202A_200F_200D_206D_202E(ReadOnlySeString P_0)
{
return P_0.WithCertainMacroCodeReplacements();
}
static ushort _206E_202E_206E_200E_206E_200E_202C_200F_206E_206C_200C_202E_200B_202B_206E_200B_206D_202C_206E_206F_200E_202B_200B_202D_206D_206C_202A_200F_200C_206C_200E_206C_202C_200B_200D_202A_200E_200F_206F_200E_202E(ElementId P_0)
{
return P_0.Value;
}
static void _202A_206D_200D_202A_200D_202C_200F_206C_202E_202A_200E_206B_200C_200E_200B_202D_200E_200F_202B_202A_200F_206C_200B_200F_200B_206A_200F_202C_200B_206D_202B_206A_202E_200F_202B_200E_202C_200D_206F_200F_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogError(P_1, P_2);
}
static void _200B_200E_202A_202E_206D_206D_200D_202D_206E_206D_206E_206D_206E_202C_202A_206B_202A_206B_206F_206B_202D_202D_200B_202A_206F_206B_206B_202C_206D_202E_202C_206E_200E_206A_202E_202C_202D_200C_200C_206D_202E(object P_0, string P_1)
{
ArgumentNullException.ThrowIfNull(P_0, P_1);
}
static string _202E_202B_200D_206E_202D_200B_206E_202E_206C_206E_206E_202C_200B_200C_202C_206C_206E_200B_200D_206F_206E_206E_206A_206E_206E_206E_202C_202C_206A_200D_200C_200B_200D_200C_206B_202D_206E_206D_202B_206A_202E(string P_0, string P_1, string P_2)
{
return P_0 + P_1 + P_2;
}
static SheetNotFoundException _202C_202B_202E_200D_202B_206A_200D_206B_200C_200C_206F_200D_200C_206A_200D_200F_200D_202B_206B_200E_206B_200D_206C_200B_206E_206D_200C_200C_200E_206C_206B_206C_202A_206E_206F_202B_202E_202D_206D_202C_202E(string P_0, Exception P_1)
{
return new SheetNotFoundException(P_0, P_1);
}
static SeString _202E_206E_206A_206A_206E_200F_202D_200E_206E_200E_200D_200D_200E_202B_200B_200B_206C_202A_206C_200C_200B_200F_202D_200E_206D_200B_206E_202A_202A_206E_206C_206C_200B_202C_200B_206F_200D_202D_200E_206C_202E(ReadOnlySeString P_0)
{
return P_0.ToDalamudString();
}
static string _202E_200B_206D_206C_206E_202A_200E_202B_206B_206C_202A_200C_202E_206E_206A_206E_202E_206F_202B_200D_202D_206A_202D_200C_200B_206A_202D_206E_206E_200C_200F_202A_200F_206E_206A_200B_202C_202E_202D_202E(object P_0)
{
return P_0.ToString();
}
static bool _200B_202C_200E_206D_202B_206C_206B_206E_206F_206F_202D_200D_202C_206A_202D_200E_206E_206D_200E_200B_202C_200F_200D_202B_202E_200E_200D_200D_202B_206F_202A_206C_206B_206D_200C_200F_202B_200C_206F_200C_202E(string P_0, string P_1)
{
return P_0 == P_1;
}
static string _206C_206C_200E_200C_206A_200F_202A_206A_206A_202D_206E_206A_200D_200D_206E_202B_200B_200B_200D_206F_200B_206F_206D_200F_202D_206E_202D_206D_202C_206D_200B_206D_206E_200C_206E_206D_206A_206B_202A_206F_202E(string P_0, string P_1)
{
return P_0 + P_1;
}
static ArgumentOutOfRangeException _206A_202E_206F_200C_206F_202E_202C_202B_202A_206C_200C_206F_200E_206B_200E_202E_202E_202D_200B_200B_200F_206B_202D_202C_206F_206F_200D_200C_202C_202B_206C_200B_202C_200C_202B_206A_202E_206A_200B_206A_202E(string P_0, string P_1)
{
return new ArgumentOutOfRangeException(P_0, P_1);
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,8 +1,148 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Text;
using Questionable.Model.Questing;
namespace Questionable.Functions;
internal sealed record PriorityQuestInfo(ElementId QuestId, string? UnavailableReason = null)
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _206A_202C_202C_206C_200D_202A_202A_206D_206B_202A_202D_200E_202D_200C_202C_206D_206D_202E_206C_200C_206D_202E_206F_200D_202D_206B_200D_206B_206D_200B_206C_202B_202C_200E_202B_202E_200E_200D_200D_202E(typeof(PriorityQuestInfo).TypeHandle);
}
}
public bool IsAvailable => UnavailableReason == null;
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _206C_200B_202A_200F_206B_202B_200B_206B_206C_202D_200F_202D_200D_206E_202C_200F_202E_202B_202B_200F_202A_206A_200E_206E_206E_200B_200C_206D_206F_200F_206D_200C_202B_202E_206A_206C_200E_206E_206D_200E_202E();
_200F_202D_206A_200D_202B_200F_206D_202A_206B_200B_206C_202D_202D_200D_206F_202C_206E_206B_202E_206D_206D_206C_206E_202B_200B_202C_200F_202D_206C_202A_202B_200D_206E_200D_200E_200C_206F_206F_200F_206A_202E(stringBuilder, 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>(1805932779));
_200F_202D_206A_200D_202B_200F_206D_202A_206B_200B_206C_202D_202D_200D_206F_202C_206E_206B_202E_206D_206D_206C_206E_202B_200B_202C_200F_202D_206C_202A_202B_200D_206E_200D_200E_200C_206F_206F_200F_206A_202E(stringBuilder, 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>(698284764));
int num = ((!PrintMembers(stringBuilder)) ? 537897320 : 537897323);
while (true)
{
int num2 = num;
int num3 = 537897322;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
num = 537897323;
break;
case 1:
_200F_202D_206A_206C_200B_206A_206A_206A_206E_206B_206E_202E_202B_202B_206C_202E_206B_202D_200F_202E_202E_202D_200F_206C_202B_206A_206E_202B_206D_202A_200B_200E_200B_206C_200D_202E_202C_200B_202A_206B_202E(stringBuilder, ' ');
num = 537897320;
break;
case 2:
_200F_202D_206A_206C_200B_206A_206A_206A_206E_206B_206E_202E_202B_202B_206C_202E_206B_202D_200F_202E_202E_202D_200F_206C_202B_206A_206E_202B_206D_202A_200B_200E_200B_206C_200D_202E_202C_200B_202A_206B_202E(stringBuilder, '}');
return _200C_200E_206D_206F_200F_206D_202C_206D_206F_200F_206C_200D_206F_202D_202B_206D_206D_206E_206D_206C_206C_202B_200D_206A_202B_206C_202C_206A_202E_200D_200C_206F_206C_202C_206B_202B_206B_206E_200C_202D_202E((object)stringBuilder);
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_200F_206A_200B_200B_200E_206C_206E_200E_200F_200F_202D_200E_206B_206B_206E_202A_202B_202E_206E_202B_206C_206F_202E_206D_200D_200B_206B_206F_202A_202B_200C_200D_206E_206E_202D_200E_200E_206F_202A_202C_202E();
_200F_202D_206A_200D_202B_200F_206D_202A_206B_200B_206C_202D_202D_200D_206F_202C_206E_206B_202E_206D_206D_206C_206E_202B_200B_202C_200F_202D_206C_202A_202B_200D_206E_200D_200E_200C_206F_206F_200F_206A_202E(builder, 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>(2135237278));
_202C_206B_200C_202C_200F_200B_200C_202A_200D_200D_200D_202C_200E_200B_202C_202E_206E_202D_206A_202C_206E_200C_202E_206D_202E_200D_206E_202C_200E_200B_200D_202A_202C_202E_206D_200C_202C_206A_206C_202B_202E(builder, (object)QuestId);
_200F_202D_206A_200D_202B_200F_206D_202A_206B_200B_206C_202D_202D_200D_206F_202C_206E_206B_202E_206D_206D_206C_206E_202B_200B_202C_200F_202D_206C_202A_202B_200D_206E_200D_200E_200C_206F_206F_200F_206A_202E(builder, 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>(990011326));
_202C_206B_200C_202C_200F_200B_200C_202A_200D_200D_200D_202C_200E_200B_202C_202E_206E_202D_206A_202C_206E_200C_202E_206D_202E_200D_206E_202C_200E_200B_200D_202A_202C_202E_206D_200C_202C_206A_206C_202B_202E(builder, (object)UnavailableReason);
_200F_202D_206A_200D_202B_200F_206D_202A_206B_200B_206C_202D_202D_200D_206F_202C_206E_206B_202E_206D_206D_206C_206E_202B_200B_202C_200F_202D_206C_202A_202B_200D_206E_200D_200E_200C_206F_206F_200F_206A_202E(builder, 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>(-682736150));
_200F_202D_206A_200D_202B_200F_206D_202A_206B_200B_206C_202D_202D_200D_206F_202C_206E_206B_202E_206D_206D_206C_206E_202B_200B_202C_200F_202D_206C_202A_202B_200D_206E_200D_200E_200C_206F_206F_200F_206A_202E(builder, IsAvailable.ToString());
return true;
}
[CompilerGenerated]
public bool Equals(PriorityQuestInfo? other)
{
int num = (((object)this == other) ? (-830578699) : (-830578704));
while (true)
{
int num2 = num;
int num3 = -830578698;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
num = -830578704;
break;
case 1:
return EqualityComparer<string>.Default.Equals(UnavailableReason, other.UnavailableReason);
case 0:
num = ((!_200D_200E_202A_200E_200D_206C_200D_200D_206B_202A_200E_206B_202A_206D_206F_202E_200F_202B_202D_206F_200E_200C_200B_202E_200D_202E_206F_202E_206E_202B_206E_202C_206F_202C_202A_200B_200D_202B_202B_200E_202E(EqualityContract, other.EqualityContract)) ? (-830578702) : (-830578701));
break;
case 5:
num = ((!EqualityComparer<ElementId>.Default.Equals(QuestId, other.QuestId)) ? (-830578702) : (-830578697));
break;
case 6:
num = (((object)other == null) ? (-830578702) : (-830578698));
break;
case 3:
return true;
case 4:
return false;
}
}
}
bool IEquatable<PriorityQuestInfo>.Equals(PriorityQuestInfo? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type _206A_202C_202C_206C_200D_202A_202A_206D_206B_202A_202D_200E_202D_200C_202C_206D_206D_202E_206C_200C_206D_202E_206F_200D_202D_206B_200D_206B_206D_200B_206C_202B_202C_200E_202B_202E_200E_200D_200D_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder _206C_200B_202A_200F_206B_202B_200B_206B_206C_202D_200F_202D_200D_206E_202C_200F_202E_202B_202B_200F_202A_206A_200E_206E_206E_200B_200C_206D_206F_200F_206D_200C_202B_202E_206A_206C_200E_206E_206D_200E_202E()
{
return new StringBuilder();
}
static StringBuilder _200F_202D_206A_200D_202B_200F_206D_202A_206B_200B_206C_202D_202D_200D_206F_202C_206E_206B_202E_206D_206D_206C_206E_202B_200B_202C_200F_202D_206C_202A_202B_200D_206E_200D_200E_200C_206F_206F_200F_206A_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _200F_202D_206A_206C_200B_206A_206A_206A_206E_206B_206E_202E_202B_202B_206C_202E_206B_202D_200F_202E_202E_202D_200F_206C_202B_206A_206E_202B_206D_202A_200B_200E_200B_206C_200D_202E_202C_200B_202A_206B_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _200C_200E_206D_206F_200F_206D_202C_206D_206F_200F_206C_200D_206F_202D_202B_206D_206D_206E_206D_206C_206C_202B_200D_206A_202B_206C_202C_206A_202E_200D_200C_206F_206C_202C_206B_202B_206B_206E_200C_202D_202E(object P_0)
{
return P_0.ToString();
}
static void _200F_206A_200B_200B_200E_206C_206E_200E_200F_200F_202D_200E_206B_206B_206E_202A_202B_202E_206E_202B_206C_206F_202E_206D_200D_200B_206B_206F_202A_202B_200C_200D_206E_206E_202D_200E_200E_206F_202A_202C_202E()
{
RuntimeHelpers.EnsureSufficientExecutionStack();
}
static StringBuilder _202C_206B_200C_202C_200F_200B_200C_202A_200D_200D_200D_202C_200E_200B_202C_202E_206E_202D_206A_202C_206E_200C_202E_206D_202E_200D_206E_202C_200E_200B_200D_202A_202C_202E_206D_200C_202C_206A_206C_202B_202E(StringBuilder P_0, object P_1)
{
return P_0.Append(P_1);
}
static bool _200D_200E_202A_200E_200D_206C_200D_200D_206B_202A_200E_206B_202A_206D_206F_202E_200F_202B_202D_206F_200E_200C_200B_202E_200D_202E_206F_202E_206E_202B_206E_202C_206F_202C_202A_200B_200D_202B_202B_200E_202E(Type P_0, Type P_1)
{
return P_0 == P_1;
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,11 +1,150 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Text;
using Questionable.Model.Questing;
namespace Questionable.Functions;
public sealed record QuestReference(ElementId? CurrentQuest, byte Sequence, MainScenarioQuestState State)
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _206F_200E_206D_200B_200C_206B_202E_200B_202A_206C_202D_206F_202E_202A_200D_206B_206A_206A_202B_206C_206E_206E_200E_206F_200D_206C_200C_202A_206E_206B_200D_202B_202B_200E_206A_200F_206B_206A_206D_202C_202E(typeof(QuestReference).TypeHandle);
}
}
public static QuestReference NoQuest(MainScenarioQuestState state)
{
return new QuestReference(null, 0, state);
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _206F_200D_200B_200B_206E_200E_200B_206A_206D_206C_202A_206D_206A_206C_202D_202E_206F_206A_206F_200F_202B_206D_206B_202D_206F_206B_202D_206C_202B_202A_206F_200D_202E_202C_202D_202B_202D_206F_200D_200E_202E();
_202C_202C_202A_202A_202A_206D_206F_200F_202C_200D_206D_206D_202A_202A_200D_202B_202A_206B_206F_202B_206B_200B_206C_206C_206A_202B_202C_202B_206E_200E_206B_202D_202B_200E_202A_202B_200C_200B_202E_202D_202E(stringBuilder, 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>(-1603834783));
_202C_202C_202A_202A_202A_206D_206F_200F_202C_200D_206D_206D_202A_202A_200D_202B_202A_206B_206F_202B_206B_200B_206C_206C_206A_202B_202C_202B_206E_200E_206B_202D_202B_200E_202A_202B_200C_200B_202E_202D_202E(stringBuilder, 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>(1664411125));
int num = ((!PrintMembers(stringBuilder)) ? (-1592482067) : (-1592482066));
while (true)
{
int num2 = num;
int num3 = -1592482065;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
_200B_206E_200D_202B_202A_206B_200E_202D_202E_200F_200C_206C_200B_200F_200B_206F_206C_200E_202B_206E_200E_200E_200F_202B_202A_206F_200C_206F_200C_206C_206B_206E_202A_202D_202C_202D_200D_206F_206F_206D_202E(stringBuilder, '}');
return _206D_202B_202C_202A_200C_202D_206D_200E_206F_202E_200E_202D_202E_206E_206F_200F_202D_202D_200C_200E_202A_202C_206A_206D_206B_206A_200E_200F_202A_200B_200D_206A_200D_206A_206C_200F_200D_202A_200B_202D_202E((object?)stringBuilder);
case 1:
_200B_206E_200D_202B_202A_206B_200E_202D_202E_200F_200C_206C_200B_200F_200B_206F_206C_200E_202B_206E_200E_200E_200F_202B_202A_206F_200C_206F_200C_206C_206B_206E_202A_202D_202C_202D_200D_206F_206F_206D_202E(stringBuilder, ' ');
num = -1592482067;
break;
case 0:
num = -1592482066;
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_200B_200B_206C_206B_206B_200F_206A_200C_200C_206E_200B_206D_206B_202D_200D_206E_206A_202C_202C_206A_202E_206E_202A_200E_200B_200E_200E_206F_202D_202A_200E_206F_206E_206E_206A_206F_206B_202E_206A_202C_202E();
_202C_202C_202A_202A_202A_206D_206F_200F_202C_200D_206D_206D_202A_202A_200D_202B_202A_206B_206F_202B_206B_200B_206C_206C_206A_202B_202C_202B_206E_200E_206B_202D_202B_200E_202A_202B_200C_200B_202E_202D_202E(builder, 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>(-1044019943));
_206F_202E_206A_202C_206D_202B_202D_200D_200F_202A_206A_200B_206D_202E_206A_200D_202D_200F_200C_202C_202C_202C_200D_202C_200C_206A_206E_206C_200F_202E_202E_206D_206C_200D_200C_206A_206A_206A_202E_202E(builder, (object?)CurrentQuest);
_202C_202C_202A_202A_202A_206D_206F_200F_202C_200D_206D_206D_202A_202A_200D_202B_202A_206B_206F_202B_206B_200B_206C_206C_206A_202B_202C_202B_206E_200E_206B_202D_202B_200E_202A_202B_200C_200B_202E_202D_202E(builder, 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>(1350191881));
_202C_202C_202A_202A_202A_206D_206F_200F_202C_200D_206D_206D_202A_202A_200D_202B_202A_206B_206F_202B_206B_200B_206C_206C_206A_202B_202C_202B_206E_200E_206B_202D_202B_200E_202A_202B_200C_200B_202E_202D_202E(builder, Sequence.ToString());
_202C_202C_202A_202A_202A_206D_206F_200F_202C_200D_206D_206D_202A_202A_200D_202B_202A_206B_206F_202B_206B_200B_206C_206C_206A_202B_202C_202B_206E_200E_206B_202D_202B_200E_202A_202B_200C_200B_202E_202D_202E(builder, 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>(867761492));
_202C_202C_202A_202A_202A_206D_206F_200F_202C_200D_206D_206D_202A_202A_200D_202B_202A_206B_206F_202B_206B_200B_206C_206C_206A_202B_202C_202B_206E_200E_206B_202D_202B_200E_202A_202B_200C_200B_202E_202D_202E(builder, State.ToString());
return true;
}
[CompilerGenerated]
public bool Equals(QuestReference? other)
{
int num = (((object)this == other) ? 1185181530 : 1185181535);
while (true)
{
int num2 = num;
int num3 = 1185181532;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = ((!_202C_206E_200C_206E_200C_206D_200F_202A_200D_200E_202A_202E_206D_200B_206E_200E_206F_202A_206C_206A_200F_202C_202D_200C_200B_206F_206D_202E_206F_206F_202A_206E_200B_206A_202C_200B_206D_206B_206F_200C_202E(EqualityContract, other.EqualityContract)) ? 1185181533 : 1185181529);
break;
case 7:
num = ((!EqualityComparer<byte>.Default.Equals(Sequence, other.Sequence)) ? 1185181533 : 1185181528);
break;
case 6:
return true;
case 2:
num = 1185181535;
break;
case 3:
num = (((object)other == null) ? 1185181533 : 1185181532);
break;
case 5:
num = ((!EqualityComparer<ElementId>.Default.Equals(CurrentQuest, other.CurrentQuest)) ? 1185181533 : 1185181531);
break;
case 4:
return EqualityComparer<MainScenarioQuestState>.Default.Equals(State, other.State);
case 1:
return false;
}
}
}
bool IEquatable<QuestReference>.Equals(QuestReference? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type? _206F_200E_206D_200B_200C_206B_202E_200B_202A_206C_202D_206F_202E_202A_200D_206B_206A_206A_202B_206C_206E_206E_200E_206F_200D_206C_200C_202A_206E_206B_200D_202B_202B_200E_206A_200F_206B_206A_206D_202C_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder? _206F_200D_200B_200B_206E_200E_200B_206A_206D_206C_202A_206D_206A_206C_202D_202E_206F_206A_206F_200F_202B_206D_206B_202D_206F_206B_202D_206C_202B_202A_206F_200D_202E_202C_202D_202B_202D_206F_200D_200E_202E()
{
return new StringBuilder();
}
static StringBuilder? _202C_202C_202A_202A_202A_206D_206F_200F_202C_200D_206D_206D_202A_202A_200D_202B_202A_206B_206F_202B_206B_200B_206C_206C_206A_202B_202C_202B_206E_200E_206B_202D_202B_200E_202A_202B_200C_200B_202E_202D_202E(StringBuilder? P_0, string? P_1)
{
return P_0.Append(P_1);
}
static StringBuilder? _200B_206E_200D_202B_202A_206B_200E_202D_202E_200F_200C_206C_200B_200F_200B_206F_206C_200E_202B_206E_200E_200E_200F_202B_202A_206F_200C_206F_200C_206C_206B_206E_202A_202D_202C_202D_200D_206F_206F_206D_202E(StringBuilder? P_0, char P_1)
{
return P_0.Append(P_1);
}
static string? _206D_202B_202C_202A_200C_202D_206D_200E_206F_202E_200E_202D_202E_206E_206F_200F_202D_202D_200C_200E_202A_202C_206A_206D_206B_206A_200E_200F_202A_200B_200D_206A_200D_206A_206C_200F_200D_202A_200B_202D_202E(object? P_0)
{
return P_0.ToString();
}
static void _200B_200B_206C_206B_206B_200F_206A_200C_200C_206E_200B_206D_206B_202D_200D_206E_206A_202C_202C_206A_202E_206E_202A_200E_200B_200E_200E_206F_202D_202A_200E_206F_206E_206E_206A_206F_206B_202E_206A_202C_202E()
{
RuntimeHelpers.EnsureSufficientExecutionStack();
}
static StringBuilder? _206F_202E_206A_202C_206D_202B_202D_200D_200F_202A_206A_200B_206D_202E_206A_200D_202D_200F_200C_202C_202C_202C_200D_202C_200C_206A_206E_206C_200F_202E_202E_206D_206C_200D_200C_206A_206A_206A_202E_202E(StringBuilder? P_0, object? P_1)
{
return P_0.Append(P_1);
}
static bool _202C_206E_200C_206E_200C_206D_200F_202A_200D_200E_202A_202E_206D_200B_206E_200E_206F_202A_206C_206A_200F_202C_202D_200C_200B_206F_206D_202E_206F_206F_202A_206E_200B_206A_202C_200B_206D_206B_206F_200C_202E(Type? P_0, Type? P_1)
{
return P_0 == P_1;
}
}