muffin v7.5.6
This commit is contained in:
parent
6266f9e6b7
commit
addf2d530f
619 changed files with 264792 additions and 446022 deletions
|
|
@ -1,8 +1,11 @@
|
|||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Game.ClientState.Conditions;
|
||||
using Dalamud.Plugin;
|
||||
using Dalamud.Plugin.Ipc;
|
||||
using Dalamud.Plugin.Ipc.Exceptions;
|
||||
using Dalamud.Plugin.Services;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Questionable.Controller;
|
||||
|
||||
namespace Questionable.External;
|
||||
|
|
@ -32,16 +35,24 @@ internal sealed class TextAdvanceIpc : IDisposable
|
|||
|
||||
private bool _isExternalControlActivated;
|
||||
|
||||
private long _ipcRetryAfter;
|
||||
|
||||
private bool _lastCinemaModeState;
|
||||
|
||||
private bool _lastInCutsceneState;
|
||||
|
||||
private bool _lastSuppressRequestState;
|
||||
|
||||
private readonly QuestController _questController;
|
||||
|
||||
private readonly FateController _fateController;
|
||||
|
||||
private readonly SeasonalDutyController _seasonalDutyController;
|
||||
|
||||
private readonly AttunementController _attunementController;
|
||||
|
||||
private readonly CustomDeliveryController _customDeliveryController;
|
||||
|
||||
private readonly Configuration _configuration;
|
||||
|
||||
private readonly ICondition _condition;
|
||||
|
|
@ -56,80 +67,215 @@ internal sealed class TextAdvanceIpc : IDisposable
|
|||
|
||||
private readonly string _pluginName;
|
||||
|
||||
public TextAdvanceIpc(IDalamudPluginInterface pluginInterface, IFramework framework, QuestController questController, FateController fateController, SeasonalDutyController seasonalDutyController, Configuration configuration, ICondition condition)
|
||||
private readonly ILogger<TextAdvanceIpc> _logger;
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public TextAdvanceIpc(IDalamudPluginInterface pluginInterface, IFramework framework, QuestController questController, FateController fateController, SeasonalDutyController seasonalDutyController, AttunementController attunementController, CustomDeliveryController customDeliveryController, Configuration configuration, ICondition condition, ILogger<TextAdvanceIpc> logger)
|
||||
{
|
||||
_framework = framework;
|
||||
_questController = questController;
|
||||
_fateController = fateController;
|
||||
_seasonalDutyController = seasonalDutyController;
|
||||
_attunementController = attunementController;
|
||||
_customDeliveryController = customDeliveryController;
|
||||
_configuration = configuration;
|
||||
_condition = condition;
|
||||
_isInExternalControl = pluginInterface.GetIpcSubscriber<bool>("TextAdvance.IsInExternalControl");
|
||||
_enableExternalControl = pluginInterface.GetIpcSubscriber<string, ExternalTerritoryConfig, bool>("TextAdvance.EnableExternalControl");
|
||||
_disableExternalControl = pluginInterface.GetIpcSubscriber<string, bool>("TextAdvance.DisableExternalControl");
|
||||
_pluginName = pluginInterface.InternalName;
|
||||
_framework.Update += OnUpdate;
|
||||
_logger = logger;
|
||||
_isInExternalControl = pluginInterface.GetIpcSubscriber<bool>(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>(-67666831));
|
||||
_enableExternalControl = pluginInterface.GetIpcSubscriber<string, ExternalTerritoryConfig, bool>(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>(-228954423));
|
||||
_disableExternalControl = pluginInterface.GetIpcSubscriber<string, bool>(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>(-324739652));
|
||||
_pluginName = _202E_200E_200D_200F_206B_200E_200B_206E_200D_206F_202B_200C_200D_200D_206C_206F_202D_200B_202B_206A_202A_206A_202B_206A_200D_202A_206E_200E_206D_200F_206B_206A_206D_206F_200D_206A_202C_200C_202A_206D_202E(pluginInterface);
|
||||
_202C_206B_206B_206D_200B_200F_206D_202D_206E_206F_202E_202C_200E_206D_206C_200C_202C_200D_206E_200D_202D_202C_200C_202C_206A_200D_206C_200D_206E_202D_202A_200E_206B_202A_206B_200E_206C_206F_206F_202D_202E(_framework, (IFramework.OnUpdateDelegate)OnUpdate);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public void Dispose()
|
||||
{
|
||||
_framework.Update -= OnUpdate;
|
||||
_200B_200C_202D_206D_202B_206C_200B_206C_200C_200D_202C_202D_200D_202E_206C_206C_200F_200B_202B_202A_206C_206E_200D_206E_206A_202E_206D_202E_202B_200F_200F_202C_202B_200D_206B_202A_206D_202D_202C_206E_202E(_framework, (IFramework.OnUpdateDelegate)OnUpdate);
|
||||
if (_isExternalControlActivated)
|
||||
{
|
||||
_disableExternalControl.InvokeFunc(_pluginName);
|
||||
try
|
||||
{
|
||||
_disableExternalControl.InvokeFunc(_pluginName);
|
||||
}
|
||||
catch (IpcError ipcError)
|
||||
{
|
||||
_202A_200F_202C_202B_206C_202C_200D_206A_206D_202C_200D_202E_202E_206B_202D_202B_206B_202B_206A_206A_202E_200E_200E_202B_202B_206A_206A_202E_202D_206C_206A_200E_200B_202B_206C_200F_206F_202E_200B_202E_202E((ILogger)_logger, (Exception)ipcError, 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>(1974302231), Array.Empty<object>());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void IDisposable.Dispose()
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Dispose
|
||||
this.Dispose();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void OnUpdate(IFramework framework)
|
||||
{
|
||||
bool flag = _questController.IsRunning || _questController.AutomationType != QuestController.EAutomationType.Manual || _fateController.IsRunning || _seasonalDutyController.IsRunning;
|
||||
if (!_configuration.General.ConfigureTextAdvance || !flag)
|
||||
int num = ((_202B_202E_206D_202D_206E_200C_200B_200B_200C_206A_200B_200E_202A_200F_202B_200B_206E_206B_202E_206D_200E_200B_206E_206C_206F_202E_200F_206C_206F_200B_206F_206D_200F_200E_200C_200C_206A_206E_206A_202A_202E() >= _ipcRetryAfter) ? 1976969313 : 1976969312);
|
||||
while (true)
|
||||
{
|
||||
if (_isExternalControlActivated && (_disableExternalControl.InvokeFunc(_pluginName) || !_isInExternalControl.InvokeFunc()))
|
||||
int num2 = num;
|
||||
int num3 = 1976969313;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
_isExternalControlActivated = false;
|
||||
}
|
||||
return;
|
||||
}
|
||||
bool cinemaMode = _configuration.General.CinemaMode;
|
||||
bool flag2 = _condition[ConditionFlag.OccupiedInCutSceneEvent] || _condition[ConditionFlag.WatchingCutscene] || _condition[ConditionFlag.WatchingCutscene78];
|
||||
bool flag3 = cinemaMode != _lastCinemaModeState || (cinemaMode && flag2 != _lastInCutsceneState);
|
||||
if (!_isExternalControlActivated)
|
||||
{
|
||||
if (!_isInExternalControl.InvokeFunc())
|
||||
{
|
||||
ExternalTerritoryConfig arg = CreateExternalTerritoryConfig(cinemaMode, flag2);
|
||||
if (_enableExternalControl.InvokeFunc(_pluginName, arg))
|
||||
case 2:
|
||||
goto IL_004d;
|
||||
case 1:
|
||||
return;
|
||||
case 0:
|
||||
try
|
||||
{
|
||||
_isExternalControlActivated = true;
|
||||
_lastCinemaModeState = cinemaMode;
|
||||
_lastInCutsceneState = flag2;
|
||||
OnUpdateInner();
|
||||
return;
|
||||
}
|
||||
catch (IpcError ipcError)
|
||||
{
|
||||
_202A_200F_202C_202B_206C_202C_200D_206A_206D_202C_200D_202E_202E_206B_202D_202B_206B_202B_206A_206A_202E_200E_200E_202B_202B_206A_206A_202E_202D_206C_206A_200E_200B_202B_206C_200F_206F_202E_200B_202E_202E((ILogger)_logger, (Exception)ipcError, 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>(1033634384), Array.Empty<object>());
|
||||
_ipcRetryAfter = _202B_202E_206D_202D_206E_200C_200B_200B_200C_206A_200B_200E_202A_200F_202B_200B_206E_206B_202E_206D_200E_200B_206E_206C_206F_202E_200F_206C_206F_200B_206F_206D_200F_200E_200C_200C_206A_206E_206A_202A_202E() + 30000;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (flag3)
|
||||
{
|
||||
ExternalTerritoryConfig arg2 = CreateExternalTerritoryConfig(cinemaMode, flag2);
|
||||
_enableExternalControl.InvokeFunc(_pluginName, arg2);
|
||||
_lastCinemaModeState = cinemaMode;
|
||||
_lastInCutsceneState = flag2;
|
||||
continue;
|
||||
IL_004d:
|
||||
num = 1976969312;
|
||||
}
|
||||
}
|
||||
|
||||
private static ExternalTerritoryConfig CreateExternalTerritoryConfig(bool cinemaMode, bool inCutscene)
|
||||
private void OnUpdateInner()
|
||||
{
|
||||
bool flag = cinemaMode && inCutscene;
|
||||
//Discarded unreachable code: IL_0182
|
||||
int num = (_questController.IsRunning ? (-758359221) : (-758359219));
|
||||
bool flag = default(bool);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -758359224;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
int num7;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 2:
|
||||
if (!_isExternalControlActivated)
|
||||
{
|
||||
return;
|
||||
}
|
||||
goto case 5;
|
||||
case 5:
|
||||
num = ((_questController.AutomationType != QuestController.EAutomationType.Manual) ? (-758359221) : (-758359220));
|
||||
break;
|
||||
case 8:
|
||||
num7 = (_customDeliveryController.IsRunning ? 1 : 0);
|
||||
goto IL_011a;
|
||||
case 1:
|
||||
num = (_seasonalDutyController.IsRunning ? (-758359221) : (-758359218));
|
||||
break;
|
||||
case 0:
|
||||
num = -758359219;
|
||||
break;
|
||||
case 4:
|
||||
num = (_fateController.IsRunning ? (-758359221) : (-758359223));
|
||||
break;
|
||||
case 3:
|
||||
num7 = 1;
|
||||
goto IL_011a;
|
||||
case 6:
|
||||
num = (_attunementController.IsRunning ? (-758359221) : (-758359232));
|
||||
break;
|
||||
case 7:
|
||||
{
|
||||
if (!flag)
|
||||
{
|
||||
num = -758359222;
|
||||
break;
|
||||
}
|
||||
bool cinemaMode = _configuration.General.CinemaMode;
|
||||
bool flag2 = _206A_202B_202E_200F_202E_206B_200E_200B_206B_206D_206B_200F_206A_206A_206F_202C_202C_206E_206E_206B_206A_200F_200F_202D_200F_206F_206D_202C_202C_200B_202E_202B_206B_200E_206F_202E_200E_200B_200C_202C_202E(_condition, ConditionFlag.OccupiedInCutSceneEvent) || _206A_202B_202E_200F_202E_206B_200E_200B_206B_206D_206B_200F_206A_206A_206F_202C_202C_206E_206E_206B_206A_200F_200F_202D_200F_206F_206D_202C_202C_200B_202E_202B_206B_200E_206F_202E_200E_200B_200C_202C_202E(_condition, ConditionFlag.WatchingCutscene) || _206A_202B_202E_200F_202E_206B_200E_200B_206B_206D_206B_200F_206A_206A_206F_202C_202C_206E_206E_206B_206A_200F_200F_202D_200F_206F_206D_202C_202C_200B_202E_202B_206B_200E_206F_202E_200E_200B_200C_202C_202E(_condition, ConditionFlag.WatchingCutscene78);
|
||||
bool flag3 = _customDeliveryController.IsRunning && !_questController.IsRunning && _questController.AutomationType == QuestController.EAutomationType.Manual && !_fateController.IsRunning && !_seasonalDutyController.IsRunning && !_attunementController.IsRunning;
|
||||
bool flag4 = cinemaMode != _lastCinemaModeState || (cinemaMode && flag2 != _lastInCutsceneState) || flag3 != _lastSuppressRequestState;
|
||||
if (!_isExternalControlActivated)
|
||||
{
|
||||
if (!_isInExternalControl.InvokeFunc())
|
||||
{
|
||||
ExternalTerritoryConfig arg = CreateExternalTerritoryConfig(cinemaMode, flag2, flag3);
|
||||
if (_enableExternalControl.InvokeFunc(_pluginName, arg))
|
||||
{
|
||||
_isExternalControlActivated = true;
|
||||
_lastCinemaModeState = cinemaMode;
|
||||
_lastInCutsceneState = flag2;
|
||||
_lastSuppressRequestState = flag3;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (flag4)
|
||||
{
|
||||
ExternalTerritoryConfig arg2 = CreateExternalTerritoryConfig(cinemaMode, flag2, flag3);
|
||||
_enableExternalControl.InvokeFunc(_pluginName, arg2);
|
||||
_lastCinemaModeState = cinemaMode;
|
||||
_lastInCutsceneState = flag2;
|
||||
_lastSuppressRequestState = flag3;
|
||||
}
|
||||
return;
|
||||
}
|
||||
IL_011a:
|
||||
flag = (byte)num7 != 0;
|
||||
num = ((!_configuration.General.ConfigureTextAdvance) ? (-758359222) : (-758359217));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static ExternalTerritoryConfig CreateExternalTerritoryConfig(bool cinemaMode, bool inCutscene, bool suppressRequestHandling)
|
||||
{
|
||||
bool flag = (byte)((uint)((cinemaMode ? 1 : 0) + (inCutscene ? 1 : 0)) - ((cinemaMode || inCutscene) ? 1u : 0u)) != 0;
|
||||
return new ExternalTerritoryConfig
|
||||
{
|
||||
EnableQuestAccept = true,
|
||||
EnableQuestComplete = true,
|
||||
EnableRewardPick = true,
|
||||
EnableRequestHandin = true,
|
||||
EnableRequestHandin = !suppressRequestHandling,
|
||||
EnableCutsceneEsc = !cinemaMode,
|
||||
EnableCutsceneSkipConfirm = !cinemaMode,
|
||||
EnableTalkSkip = !flag,
|
||||
EnableRequestFill = true,
|
||||
EnableRequestFill = !suppressRequestHandling,
|
||||
EnableAutoInteract = false
|
||||
};
|
||||
}
|
||||
|
||||
static string _202E_200E_200D_200F_206B_200E_200B_206E_200D_206F_202B_200C_200D_200D_206C_206F_202D_200B_202B_206A_202A_206A_202B_206A_200D_202A_206E_200E_206D_200F_206B_206A_206D_206F_200D_206A_202C_200C_202A_206D_202E(IDalamudPluginInterface P_0)
|
||||
{
|
||||
return P_0.InternalName;
|
||||
}
|
||||
|
||||
static void _202C_206B_206B_206D_200B_200F_206D_202D_206E_206F_202E_202C_200E_206D_206C_200C_202C_200D_206E_200D_202D_202C_200C_202C_206A_200D_206C_200D_206E_202D_202A_200E_206B_202A_206B_200E_206C_206F_206F_202D_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1)
|
||||
{
|
||||
P_0.Update += P_1;
|
||||
}
|
||||
|
||||
static void _200B_200C_202D_206D_202B_206C_200B_206C_200C_200D_202C_202D_200D_202E_206C_206C_200F_200B_202B_202A_206C_206E_200D_206E_206A_202E_206D_202E_202B_200F_200F_202C_202B_200D_206B_202A_206D_202D_202C_206E_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1)
|
||||
{
|
||||
P_0.Update -= P_1;
|
||||
}
|
||||
|
||||
static void _202A_200F_202C_202B_206C_202C_200D_206A_206D_202C_200D_202E_202E_206B_202D_202B_206B_202B_206A_206A_202E_200E_200E_202B_202B_206A_206A_202E_202D_206C_206A_200E_200B_202B_206C_200F_206F_202E_200B_202E_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2, P_3);
|
||||
}
|
||||
|
||||
static long _202B_202E_206D_202D_206E_200C_200B_200B_200C_206A_200B_200E_202A_200F_202B_200B_206E_206B_202E_206D_200E_200B_206E_206C_206F_202E_200F_206C_206F_200B_206F_206D_200F_200E_200C_200C_206A_206E_206A_202A_202E()
|
||||
{
|
||||
return Environment.TickCount64;
|
||||
}
|
||||
|
||||
static bool _206A_202B_202E_200F_202E_206B_200E_200B_206B_206D_206B_200F_206A_206A_206F_202C_202C_206E_206E_206B_206A_200F_200F_202D_200F_206F_206D_202C_202C_200B_202E_202B_206B_200E_206F_202E_200E_200B_200C_202C_202E(ICondition P_0, ConditionFlag P_1)
|
||||
{
|
||||
return P_0[P_1];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue