560 lines
34 KiB
C#
560 lines
34 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Numerics;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using Dalamud.Game.ClientState.Conditions;
|
|
using Dalamud.Game.ClientState.Objects.SubKinds;
|
|
using Dalamud.Game.ClientState.Objects.Types;
|
|
using Dalamud.Plugin.Services;
|
|
using FFXIVClientStructs.FFXIV.Client.Game;
|
|
using Microsoft.Extensions.Logging;
|
|
using Questionable.Model;
|
|
using Questionable.Model.Questing;
|
|
|
|
namespace Questionable.Controller.Steps.Interactions;
|
|
|
|
internal static class Jump
|
|
{
|
|
internal sealed class Factory : SimpleTaskFactory
|
|
{
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step)
|
|
{
|
|
int num = ((_200E_202A_202E_202C_206A_202E_200E_206A_206E_206E_202C_206E_206D_200D_200E_202D_200F_206E_200D_200D_206D_200C_200D_202B_202A_202A_200B_200B_206D_202B_200F_200B_200F_206D_206B_202E_206A_200C_202D_202B_202E(step) == EInteractionType.Jump) ? 1879754569 : 1879754570);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1879754571;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 4:
|
|
return new SingleJumpTask(_200B_206E_202B_202E_202B_200F_202E_202C_206D_200F_202A_200B_206F_200B_200D_206C_202C_206A_206E_206F_200E_202D_206D_206D_206F_202A_206E_200F_202E_206E_202B_200D_206E_202B_206E_206D_200B_206A_200C_202D_202E(step), _200C_202C_206B_200F_200E_206E_202D_206E_200F_206C_206C_206B_206F_202D_200D_206F_202C_202A_202C_200B_200C_200E_200B_202B_206B_206D_202A_202C_200B_200F_200C_202B_202B_206A_206C_202A_202C_202D_200E_202E(step), _206D_200E_206F_200F_202D_206B_202E_200F_206F_206B_200B_206A_202C_200F_206D_206C_200C_206B_200D_206B_206D_200D_202E_206C_206A_206E_202B_200E_200F_200C_202E_206B_206D_206D_206B_200B_206C_206F_206B_200D_202E(step));
|
|
case 1:
|
|
return null;
|
|
case 0:
|
|
return new RepeatedJumpTask(_200B_206E_202B_202E_202B_200F_202E_202C_206D_200F_202A_200B_206F_200B_200D_206C_202C_206A_206E_206F_200E_202D_206D_206D_206F_202A_206E_200F_202E_206E_202B_200D_206E_202B_206E_206D_200B_206A_200C_202D_202E(step), _200C_202C_206B_200F_200E_206E_202D_206E_200F_206C_206C_206B_206F_202D_200D_206F_202C_202A_202C_200B_200C_200E_200B_202B_206B_206D_202A_202C_200B_200F_200C_202B_202B_206A_206C_202A_202C_202D_200E_202E(step), _206D_200E_206F_200F_202D_206B_202E_200F_206F_206B_200B_206A_202C_200F_206D_206C_200C_206B_200D_206B_206D_200D_202E_206C_206A_206E_202B_200E_200F_200C_202E_206B_206D_206D_206B_200B_206C_206F_206B_200D_202E(step));
|
|
case 2:
|
|
_206E_206C_206A_200C_206A_206C_202B_206C_206F_200C_200B_200B_202C_206D_202A_206B_206B_206A_202A_206B_206D_206A_200E_206B_202E_202D_200D_200B_200F_206E_200B_206B_200B_200C_206F_206B_206C_200F_200F_206F_202E((object)_200C_202C_206B_200F_200E_206E_202D_206E_200F_206C_206C_206B_206F_202D_200D_206F_202C_202A_202C_200B_200C_200E_200B_202B_206B_206D_202A_202C_200B_200F_200C_202B_202B_206A_206C_202A_202C_202D_200E_202E(step), 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>(-1260133087));
|
|
num = ((_200E_206A_206A_206B_200D_200E_200F_202C_200B_202C_206E_206A_206A_202E_200B_200D_202E_206E_202D_202A_202A_202E_200E_206C_206F_206C_202B_206E_200C_206D_200E_202A_200E_200F_202A_200F_206E_206F_202C_200E_202E(_200C_202C_206B_200F_200E_206E_202D_206E_200F_206C_206C_206B_206F_202D_200D_206F_202C_202A_202C_200B_200C_200E_200B_202B_206B_206D_202A_202C_200B_200F_200C_202B_202B_206A_206C_202A_202C_202D_200E_202E(step)) != EJumpType.SingleJump) ? 1879754571 : 1879754575);
|
|
break;
|
|
case 3:
|
|
num = 1879754570;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static EInteractionType _200E_202A_202E_202C_206A_202E_200E_206A_206E_206E_202C_206E_206D_200D_200E_202D_200F_206E_200D_200D_206D_200C_200D_202B_202A_202A_200B_200B_206D_202B_200F_200B_200F_206D_206B_202E_206A_200C_202D_202B_202E(QuestStep P_0)
|
|
{
|
|
return P_0.InteractionType;
|
|
}
|
|
|
|
static JumpDestination _200C_202C_206B_200F_200E_206E_202D_206E_200F_206C_206C_206B_206F_202D_200D_206F_202C_202A_202C_200B_200C_200E_200B_202B_206B_206D_202A_202C_200B_200F_200C_202B_202B_206A_206C_202A_202C_202D_200E_202E(QuestStep P_0)
|
|
{
|
|
return P_0.JumpDestination;
|
|
}
|
|
|
|
static void _206E_206C_206A_200C_206A_206C_202B_206C_206F_200C_200B_200B_202C_206D_202A_206B_206B_206A_202A_206B_206D_206A_200E_206B_202E_202D_200D_200B_200F_206E_200B_206B_200B_200C_206F_206B_206C_200F_200F_206F_202E(object P_0, string P_1)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(P_0, P_1);
|
|
}
|
|
|
|
static EJumpType _200E_206A_206A_206B_200D_200E_200F_202C_200B_202C_206E_206A_206A_202E_200B_200D_202E_206E_202D_202A_202A_202E_200E_206C_206F_206C_202B_206E_200C_206D_200E_202A_200E_200F_202A_200F_206E_206F_202C_200E_202E(JumpDestination P_0)
|
|
{
|
|
return P_0.Type;
|
|
}
|
|
|
|
static uint? _200B_206E_202B_202E_202B_200F_202E_202C_206D_200F_202A_200B_206F_200B_200D_206C_202C_206A_206E_206F_200E_202D_206D_206D_206F_202A_206E_200F_202E_206E_202B_200D_206E_202B_206E_206D_200B_206A_200C_202D_202E(QuestStep P_0)
|
|
{
|
|
return P_0.DataId;
|
|
}
|
|
|
|
static string _206D_200E_206F_200F_202D_206B_202E_200F_206F_206B_200B_206A_202C_200F_206D_206C_200C_206B_200D_206B_206D_200D_202E_206C_206A_206E_202B_200E_200F_200C_202E_206B_206D_206D_206B_200B_206C_206F_206B_200D_202E(QuestStep P_0)
|
|
{
|
|
return P_0.Comment;
|
|
}
|
|
}
|
|
|
|
internal interface IJumpTask : ITask
|
|
{
|
|
uint? DataId { get; }
|
|
|
|
JumpDestination JumpDestination { get; }
|
|
|
|
string? Comment { get; }
|
|
}
|
|
|
|
internal sealed record SingleJumpTask(uint? DataId, JumpDestination JumpDestination, string? Comment) : IJumpTask, ITask
|
|
{
|
|
[CompilerGenerated]
|
|
private Type EqualityContract
|
|
{
|
|
[CompilerGenerated]
|
|
get
|
|
{
|
|
return _206F_202D_202A_206A_202C_202B_200C_202D_206B_202B_200F_200B_200D_202C_200F_202A_200C_202B_206D_206E_206B_202D_200E_202E_202E_200D_200C_202D_200F_202A_206D_202A_206B_202E_206B_200B_202B_200D_206E_200E_202E(typeof(SingleJumpTask).TypeHandle);
|
|
}
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
public override string ToString()
|
|
{
|
|
return _200E_206E_200E_200E_202A_202B_206B_200D_200F_200B_200E_202E_202A_206A_206F_202E_200B_206A_202A_200C_206A_202D_202E_206C_206D_202E_206D_206F_202C_200E_206D_200B_202A_206A_202B_202C_206D_202E_200D_206D_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>(2069957391), Comment, 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>(1735737295));
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
[CompilerGenerated]
|
|
private bool PrintMembers(StringBuilder builder)
|
|
{
|
|
_202D_200D_202B_202B_200B_206F_206D_202D_200D_206E_202A_202D_202B_202B_202A_206C_202E_202E_206F_202B_202B_202A_202B_202B_202A_200B_200C_200D_206E_202D_202A_202D_206F_206C_200B_206C_206E_206A_200B_206D_202E();
|
|
_200D_200D_200D_200D_206D_206B_206A_206F_202D_200B_200E_202E_202A_206D_206A_200E_202D_206D_200B_200D_206C_200F_202B_206A_202A_200E_202A_202D_206C_202E_206D_202C_200D_206A_202D_206A_202D_206B_206E_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>(-813337770));
|
|
_200D_200D_200D_200D_206D_206B_206A_206F_202D_200B_200E_202E_202A_206D_206A_200E_202D_206D_200B_200D_206C_200F_202B_206A_202A_200E_202A_202D_206C_202E_206D_202C_200D_206A_202D_206A_202D_206B_206E_202D_202E(builder, DataId.ToString());
|
|
_200D_200D_200D_200D_206D_206B_206A_206F_202D_200B_200E_202E_202A_206D_206A_200E_202D_206D_200B_200D_206C_200F_202B_206A_202A_200E_202A_202D_206C_202E_206D_202C_200D_206A_202D_206A_202D_206B_206E_202D_202E(builder, 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>(840372176));
|
|
_206D_202B_206B_200C_202A_200B_202B_206D_200E_206B_206B_202E_202C_202B_206D_200C_202D_202E_202A_202E_206B_206D_206E_206A_202A_200F_206B_202D_202D_206D_202E_202C_200B_200E_206B_202B_200D_206C_202B_206D_202E(builder, (object)JumpDestination);
|
|
_200D_200D_200D_200D_206D_206B_206A_206F_202D_200B_200E_202E_202A_206D_206A_200E_202D_206D_200B_200D_206C_200F_202B_206A_202A_200E_202A_202D_206C_202E_206D_202C_200D_206A_202D_206A_202D_206B_206E_202D_202E(builder, 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>(-1006174404));
|
|
_206D_202B_206B_200C_202A_200B_202B_206D_200E_206B_206B_202E_202C_202B_206D_200C_202D_202E_202A_202E_206B_206D_206E_206A_202A_200F_206B_202D_202D_206D_202E_202C_200B_200E_206B_202B_200D_206C_202B_206D_202E(builder, (object)Comment);
|
|
return true;
|
|
}
|
|
|
|
[CompilerGenerated]
|
|
public bool Equals(SingleJumpTask? other)
|
|
{
|
|
int num = (((object)this == other) ? (-1677814898) : (-1677814903));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1677814899;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 3:
|
|
return true;
|
|
case 4:
|
|
num = (((object)other == null) ? (-1677814901) : (-1677814902));
|
|
break;
|
|
case 0:
|
|
num = -1677814903;
|
|
break;
|
|
case 5:
|
|
return EqualityComparer<string>.Default.Equals(Comment, other.Comment);
|
|
case 6:
|
|
return false;
|
|
case 7:
|
|
num = ((!_202E_200D_206E_206E_200B_202B_200F_202D_202D_206D_206B_202C_206E_202E_202C_206D_200C_206D_200D_206C_202C_200D_202C_202B_200D_206B_206A_202C_202C_200C_200B_202D_200D_206B_200D_202D_206A_200F_202E_200E_202E(EqualityContract, other.EqualityContract)) ? (-1677814901) : (-1677814900));
|
|
break;
|
|
case 1:
|
|
num = ((!EqualityComparer<uint?>.Default.Equals(DataId, other.DataId)) ? (-1677814901) : (-1677814897));
|
|
break;
|
|
case 2:
|
|
num = ((!EqualityComparer<Questionable.Model.Questing.JumpDestination>.Default.Equals(JumpDestination, other.JumpDestination)) ? (-1677814901) : (-1677814904));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
bool IEquatable<SingleJumpTask>.Equals(SingleJumpTask? other)
|
|
{
|
|
//ILSpy generated this explicit interface implementation from .override directive in Equals
|
|
return this.Equals(other);
|
|
}
|
|
|
|
static Type _206F_202D_202A_206A_202C_202B_200C_202D_206B_202B_200F_200B_200D_202C_200F_202A_200C_202B_206D_206E_206B_202D_200E_202E_202E_200D_200C_202D_200F_202A_206D_202A_206B_202E_206B_200B_202B_200D_206E_200E_202E(RuntimeTypeHandle P_0)
|
|
{
|
|
return Type.GetTypeFromHandle(P_0);
|
|
}
|
|
|
|
static string _200E_206E_200E_200E_202A_202B_206B_200D_200F_200B_200E_202E_202A_206A_206F_202E_200B_206A_202A_200C_206A_202D_202E_206C_206D_202E_206D_206F_202C_200E_206D_200B_202A_206A_202B_202C_206D_202E_200D_206D_202E(string P_0, string P_1, string P_2)
|
|
{
|
|
return P_0 + P_1 + P_2;
|
|
}
|
|
|
|
static void _202D_200D_202B_202B_200B_206F_206D_202D_200D_206E_202A_202D_202B_202B_202A_206C_202E_202E_206F_202B_202B_202A_202B_202B_202A_200B_200C_200D_206E_202D_202A_202D_206F_206C_200B_206C_206E_206A_200B_206D_202E()
|
|
{
|
|
RuntimeHelpers.EnsureSufficientExecutionStack();
|
|
}
|
|
|
|
static StringBuilder _200D_200D_200D_200D_206D_206B_206A_206F_202D_200B_200E_202E_202A_206D_206A_200E_202D_206D_200B_200D_206C_200F_202B_206A_202A_200E_202A_202D_206C_202E_206D_202C_200D_206A_202D_206A_202D_206B_206E_202D_202E(StringBuilder P_0, string P_1)
|
|
{
|
|
return P_0.Append(P_1);
|
|
}
|
|
|
|
static StringBuilder _206D_202B_206B_200C_202A_200B_202B_206D_200E_206B_206B_202E_202C_202B_206D_200C_202D_202E_202A_202E_206B_206D_206E_206A_202A_200F_206B_202D_202D_206D_202E_202C_200B_200E_206B_202B_200D_206C_202B_206D_202E(StringBuilder P_0, object P_1)
|
|
{
|
|
return P_0.Append(P_1);
|
|
}
|
|
|
|
static bool _202E_200D_206E_206E_200B_202B_200F_202D_202D_206D_206B_202C_206E_202E_202C_206D_200C_206D_200D_206C_202C_200D_202C_202B_200D_206B_206A_202C_202C_200C_200B_202D_200D_206B_200D_202D_206A_200F_202E_200E_202E(Type P_0, Type P_1)
|
|
{
|
|
return P_0 == P_1;
|
|
}
|
|
}
|
|
|
|
internal abstract class JumpBase<T>(MovementController movementController, IObjectTable objectTable, IFramework framework) : TaskExecutor<T>() where T : class, IJumpTask
|
|
{
|
|
protected unsafe override bool Start()
|
|
{
|
|
IPlayerCharacter playerCharacter = _206E_200D_202E_206B_206A_202B_200E_202C_202E_206A_202B_206D_200D_202A_200B_200F_206A_202C_206A_206D_202C_206B_200C_200D_200D_202C_206E_206C_200B_202A_202D_202C_206A_206C_200B_206A_200D_202A_202A_202A_202E(_003CobjectTable_003EP);
|
|
int num = ((playerCharacter != null) ? 279360376 : 279360377);
|
|
float num7 = default(float);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 279360376;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 2:
|
|
{
|
|
MovementController movementController = _003CmovementController_003EP;
|
|
uint? dataId = base.Task.DataId;
|
|
int num8 = 1;
|
|
List<Vector3> list = new List<Vector3>(num8);
|
|
CollectionsMarshal.SetCount(list, num8);
|
|
CollectionsMarshal.AsSpan(list)[0] = _200E_206A_206D_206E_206B_200B_200E_200C_202A_202A_206E_202E_200D_202D_202C_202A_206D_202C_206B_206A_206C_202D_202B_200F_200E_206D_200D_206E_200E_206F_202D_200B_200B_200C_206D_200B_200B_200F_202C_202D_202E(base.Task.JumpDestination);
|
|
movementController.NavigateTo(EMovementType.Quest, dataId, list, fly: false, sprint: false, _206B_206D_206F_202A_206F_202A_200F_202A_200D_202A_202B_206E_202B_202B_202E_200E_202C_200E_206F_200C_200D_202D_200C_202C_206B_202C_200B_200C_206D_200C_206D_202C_206B_202D_206B_200C_206A_200D_202A_206A_202E(base.Task.JumpDestination) ?? num7);
|
|
_206A_200C_206D_206D_202B_202C_206F_200E_200B_206C_202D_200E_206C_206D_206E_206E_202D_206D_206C_202B_206D_202E_206E_202B_202D_206C_200C_200F_206C_200F_200D_206B_206E_202C_202C_206E_202D_206C_200B_200F_202E(_003Cframework_003EP, (System.Action)delegate
|
|
{
|
|
ActionManager.Instance()->UseAction(ActionType.GeneralAction, 2u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null);
|
|
}, TimeSpan.FromSeconds(_206E_202C_202D_206C_200F_206E_206D_200E_202B_206C_200E_206C_206C_200F_202D_202D_202B_206A_202D_202A_206C_206B_200B_200B_206B_206F_206D_206D_202A_206D_206F_200D_200F_206C_202E_200B_206F_202A_200F_206D_202E(base.Task.JumpDestination) ?? 0.5f), 0, default(CancellationToken));
|
|
return true;
|
|
}
|
|
case 0:
|
|
num7 = _200D_200F_202A_202E_200F_200C_206F_206C_200B_206D_200D_202A_200F_202E_206D_200F_202B_202E_206F_206C_206F_200C_202D_200B_202C_200B_200D_206D_200F_200B_200C_202E_200B_200E_200C_202C_206B_202E_200E_202A_202E(base.Task.JumpDestination);
|
|
num = ((!((_206D_202A_206B_206F_202E_202A_206C_206C_200E_206F_206A_200E_206A_206B_202E_202E_206A_206B_202C_206A_200E_200C_200B_206E_202B_206B_206E_200D_206F_206E_206D_200E_206D_200D_202A_202C_206D_206B_202C_202A_202E((IGameObject)playerCharacter) - _200E_206A_206D_206E_206B_200B_200E_200C_202A_202A_206E_202E_200D_202D_202C_202A_206D_202C_206B_206A_206C_202D_202B_200F_200E_206D_200D_206E_200E_206F_202D_200B_200B_200C_206D_200B_200B_200F_202C_202D_202E(base.Task.JumpDestination)).Length() <= num7)) ? 279360378 : 279360380);
|
|
break;
|
|
case 1:
|
|
return false;
|
|
case 4:
|
|
return false;
|
|
case 3:
|
|
num = 279360377;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public override ETaskResult Update()
|
|
{
|
|
int num = (_003CmovementController_003EP.IsPathfinding ? (-470159093) : (-470159095));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -470159096;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 3:
|
|
return ETaskResult.StillRunning;
|
|
case 1:
|
|
num = ((!_003CmovementController_003EP.IsPathRunning) ? (-470159096) : (-470159093));
|
|
break;
|
|
case 0:
|
|
num = (_003CmovementController_003EP.HasBeenMovingForAtLeast(1000) ? (-470159094) : (-470159092));
|
|
break;
|
|
case 5:
|
|
num = -470159095;
|
|
break;
|
|
case 4:
|
|
return ETaskResult.StillRunning;
|
|
case 2:
|
|
return ETaskResult.TaskComplete;
|
|
}
|
|
}
|
|
}
|
|
|
|
public override bool ShouldInterruptOnDamage()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
static IPlayerCharacter _206E_200D_202E_206B_206A_202B_200E_202C_202E_206A_202B_206D_200D_202A_200B_200F_206A_202C_206A_206D_202C_206B_200C_200D_200D_202C_206E_206C_200B_202A_202D_202C_206A_206C_200B_206A_200D_202A_202A_202A_202E(IObjectTable P_0)
|
|
{
|
|
return P_0.LocalPlayer;
|
|
}
|
|
|
|
static float _200D_200F_202A_202E_200F_200C_206F_206C_200B_206D_200D_202A_200F_202E_206D_200F_202B_202E_206F_206C_206F_200C_202D_200B_202C_200B_200D_206D_200F_200B_200C_202E_200B_200E_200C_202C_206B_202E_200E_202A_202E(JumpDestination P_0)
|
|
{
|
|
return P_0.CalculateStopDistance();
|
|
}
|
|
|
|
static Vector3 _206D_202A_206B_206F_202E_202A_206C_206C_200E_206F_206A_200E_206A_206B_202E_202E_206A_206B_202C_206A_200E_200C_200B_206E_202B_206B_206E_200D_206F_206E_206D_200E_206D_200D_202A_202C_206D_206B_202C_202A_202E(IGameObject P_0)
|
|
{
|
|
return P_0.Position;
|
|
}
|
|
|
|
static Vector3 _200E_206A_206D_206E_206B_200B_200E_200C_202A_202A_206E_202E_200D_202D_202C_202A_206D_202C_206B_206A_206C_202D_202B_200F_200E_206D_200D_206E_200E_206F_202D_200B_200B_200C_206D_200B_200B_200F_202C_202D_202E(JumpDestination P_0)
|
|
{
|
|
return P_0.Position;
|
|
}
|
|
|
|
static float? _206B_206D_206F_202A_206F_202A_200F_202A_200D_202A_202B_206E_202B_202B_202E_200E_202C_200E_206F_200C_200D_202D_200C_202C_206B_202C_200B_200C_206D_200C_206D_202C_206B_202D_206B_200C_206A_200D_202A_206A_202E(JumpDestination P_0)
|
|
{
|
|
return P_0.StopDistance;
|
|
}
|
|
|
|
static float? _206E_202C_202D_206C_200F_206E_206D_200E_202B_206C_200E_206C_206C_200F_202D_202D_202B_206A_202D_202A_206C_206B_200B_200B_206B_206F_206D_206D_202A_206D_206F_200D_200F_206C_202E_200B_206F_202A_200F_206D_202E(JumpDestination P_0)
|
|
{
|
|
return P_0.DelaySeconds;
|
|
}
|
|
|
|
static Task _206A_200C_206D_206D_202B_202C_206F_200E_200B_206C_202D_200E_206C_206D_206E_206E_202D_206D_206C_202B_206D_202E_206E_202B_202D_206C_200C_200F_206C_200F_200D_206B_206E_202C_202C_206E_202D_206C_200B_200F_202E(IFramework P_0, System.Action P_1, TimeSpan P_2, int P_3, CancellationToken P_4)
|
|
{
|
|
return P_0.RunOnTick(P_1, P_2, P_3, P_4);
|
|
}
|
|
}
|
|
|
|
internal sealed class DoSingleJump : JumpBase<SingleJumpTask>
|
|
{
|
|
public DoSingleJump(MovementController movementController, IObjectTable objectTable, IFramework framework)
|
|
: base(movementController, objectTable, framework)
|
|
{
|
|
}
|
|
}
|
|
|
|
internal sealed record RepeatedJumpTask(uint? DataId, JumpDestination JumpDestination, string? Comment) : IJumpTask, ITask
|
|
{
|
|
[CompilerGenerated]
|
|
private Type EqualityContract
|
|
{
|
|
[CompilerGenerated]
|
|
get
|
|
{
|
|
return _206F_206C_202B_206C_200C_202A_200E_200D_202B_206C_202A_202C_200F_206E_202C_206D_206A_200F_206C_206D_200E_206C_200D_206B_200D_206E_202C_200D_206E_202B_206C_202C_202E_202E_200D_206B_206C_206B_206E_206B_202E(typeof(RepeatedJumpTask).TypeHandle);
|
|
}
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
public override string ToString()
|
|
{
|
|
return _202A_206C_206D_200C_200D_206B_202A_202E_206E_200E_202B_206F_200B_202C_202E_202B_206F_206F_206E_206D_202E_206D_206A_200B_206C_202B_206F_206D_202B_206F_206F_202A_200E_202E_206D_202D_200F_202D_206B_200E_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>(-1812591984), Comment, 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>(1618480346));
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
[CompilerGenerated]
|
|
private bool PrintMembers(StringBuilder builder)
|
|
{
|
|
_202B_200C_200F_202B_206D_202B_200E_206F_202A_206E_200E_202E_200F_202B_200F_200B_200D_200B_202E_200F_206C_200F_200E_202D_200B_202D_206E_200D_206E_206A_206E_200F_206D_200E_202C_206E_200D_206A_202D_202E();
|
|
_200B_206A_200E_206C_200C_202D_206A_206F_202B_202A_202B_202C_200B_200C_206B_202E_206D_202D_206C_200F_206F_206F_200D_200B_206B_206D_206B_206A_200F_206D_202A_202A_206E_200D_200B_200C_200D_202D_200D_202A_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>(-813337770));
|
|
_200B_206A_200E_206C_200C_202D_206A_206F_202B_202A_202B_202C_200B_200C_206B_202E_206D_202D_206C_200F_206F_206F_200D_200B_206B_206D_206B_206A_200F_206D_202A_202A_206E_200D_200B_200C_200D_202D_200D_202A_202E(builder, DataId.ToString());
|
|
_200B_206A_200E_206C_200C_202D_206A_206F_202B_202A_202B_202C_200B_200C_206B_202E_206D_202D_206C_200F_206F_206F_200D_200B_206B_206D_206B_206A_200F_206D_202A_202A_206E_200D_200B_200C_200D_202D_200D_202A_202E(builder, 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>(2048561311));
|
|
_206A_206C_202A_202B_200F_200D_206C_202D_200F_206B_206C_202B_202C_200E_206F_202B_202D_200E_202A_200D_200C_200B_206D_206F_206F_206B_206B_206E_202C_206F_202B_206D_206A_202B_200F_202C_200F_206A_206E_206B_202E(builder, (object)JumpDestination);
|
|
_200B_206A_200E_206C_200C_202D_206A_206F_202B_202A_202B_202C_200B_200C_206B_202E_206D_202D_206C_200F_206F_206F_200D_200B_206B_206D_206B_206A_200F_206D_202A_202A_206E_200D_200B_200C_200D_202D_200D_202A_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>(430956117));
|
|
_206A_206C_202A_202B_200F_200D_206C_202D_200F_206B_206C_202B_202C_200E_206F_202B_202D_200E_202A_200D_200C_200B_206D_206F_206F_206B_206B_206E_202C_206F_202B_206D_206A_202B_200F_202C_200F_206A_206E_206B_202E(builder, (object)Comment);
|
|
return true;
|
|
}
|
|
|
|
[CompilerGenerated]
|
|
public bool Equals(RepeatedJumpTask? other)
|
|
{
|
|
int num = (((object)this == other) ? (-565418878) : (-565418874));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -565418873;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 0:
|
|
num = ((!EqualityComparer<Questionable.Model.Questing.JumpDestination>.Default.Equals(JumpDestination, other.JumpDestination)) ? (-565418875) : (-565418880));
|
|
break;
|
|
case 1:
|
|
num = (((object)other == null) ? (-565418875) : (-565418879));
|
|
break;
|
|
case 6:
|
|
num = ((!_206B_206B_206F_202A_202C_206E_206A_206F_206E_200E_206A_206C_206B_202C_206C_206B_200E_202A_206A_206F_200C_206B_206B_202D_206E_202B_206A_202C_206D_202E_200E_206F_200B_200B_206C_200D_202B_200F_206E_202B_202E(EqualityContract, other.EqualityContract)) ? (-565418875) : (-565418877));
|
|
break;
|
|
case 7:
|
|
return EqualityComparer<string>.Default.Equals(Comment, other.Comment);
|
|
case 4:
|
|
num = ((!EqualityComparer<uint?>.Default.Equals(DataId, other.DataId)) ? (-565418875) : (-565418873));
|
|
break;
|
|
case 3:
|
|
num = -565418874;
|
|
break;
|
|
case 5:
|
|
return true;
|
|
case 2:
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
bool IEquatable<RepeatedJumpTask>.Equals(RepeatedJumpTask? other)
|
|
{
|
|
//ILSpy generated this explicit interface implementation from .override directive in Equals
|
|
return this.Equals(other);
|
|
}
|
|
|
|
static Type _206F_206C_202B_206C_200C_202A_200E_200D_202B_206C_202A_202C_200F_206E_202C_206D_206A_200F_206C_206D_200E_206C_200D_206B_200D_206E_202C_200D_206E_202B_206C_202C_202E_202E_200D_206B_206C_206B_206E_206B_202E(RuntimeTypeHandle P_0)
|
|
{
|
|
return Type.GetTypeFromHandle(P_0);
|
|
}
|
|
|
|
static string _202A_206C_206D_200C_200D_206B_202A_202E_206E_200E_202B_206F_200B_202C_202E_202B_206F_206F_206E_206D_202E_206D_206A_200B_206C_202B_206F_206D_202B_206F_206F_202A_200E_202E_206D_202D_200F_202D_206B_200E_202E(string P_0, string P_1, string P_2)
|
|
{
|
|
return P_0 + P_1 + P_2;
|
|
}
|
|
|
|
static void _202B_200C_200F_202B_206D_202B_200E_206F_202A_206E_200E_202E_200F_202B_200F_200B_200D_200B_202E_200F_206C_200F_200E_202D_200B_202D_206E_200D_206E_206A_206E_200F_206D_200E_202C_206E_200D_206A_202D_202E()
|
|
{
|
|
RuntimeHelpers.EnsureSufficientExecutionStack();
|
|
}
|
|
|
|
static StringBuilder _200B_206A_200E_206C_200C_202D_206A_206F_202B_202A_202B_202C_200B_200C_206B_202E_206D_202D_206C_200F_206F_206F_200D_200B_206B_206D_206B_206A_200F_206D_202A_202A_206E_200D_200B_200C_200D_202D_200D_202A_202E(StringBuilder P_0, string P_1)
|
|
{
|
|
return P_0.Append(P_1);
|
|
}
|
|
|
|
static StringBuilder _206A_206C_202A_202B_200F_200D_206C_202D_200F_206B_206C_202B_202C_200E_206F_202B_202D_200E_202A_200D_200C_200B_206D_206F_206F_206B_206B_206E_202C_206F_202B_206D_206A_202B_200F_202C_200F_206A_206E_206B_202E(StringBuilder P_0, object P_1)
|
|
{
|
|
return P_0.Append(P_1);
|
|
}
|
|
|
|
static bool _206B_206B_206F_202A_202C_206E_206A_206F_206E_200E_206A_206C_206B_202C_206C_206B_200E_202A_206A_206F_200C_206B_206B_202D_206E_202B_206A_202C_206D_202E_200E_206F_200B_200B_206C_200D_202B_200F_206E_202B_202E(Type P_0, Type P_1)
|
|
{
|
|
return P_0 == P_1;
|
|
}
|
|
}
|
|
|
|
internal sealed class DoRepeatedJumps : JumpBase<RepeatedJumpTask>
|
|
{
|
|
private readonly IObjectTable _objectTable;
|
|
|
|
private long _continueAt;
|
|
|
|
private int _attempts;
|
|
|
|
public DoRepeatedJumps(MovementController movementController, IObjectTable objectTable, IFramework framework, ICondition condition, ILogger<DoRepeatedJumps> logger)
|
|
{
|
|
_003Ccondition_003EP = condition;
|
|
_003Clogger_003EP = logger;
|
|
_objectTable = objectTable;
|
|
base._002Ector(movementController, objectTable, framework);
|
|
}
|
|
|
|
protected override bool Start()
|
|
{
|
|
_continueAt = _206A_202B_206B_202B_202C_200B_202B_202D_206F_200D_202D_200F_206F_206F_200F_202E_200D_200F_200B_202A_200B_200E_206D_206B_202A_206F_206A_206F_206C_206E_200D_206E_200B_202D_202A_206A_206C_200F_206A_206C_202E() + (long)(2000f * (_202E_200B_206E_200B_206D_202B_202C_206C_200E_206C_202E_206E_202D_200E_200F_206D_202C_206F_206A_202D_206E_200D_202D_202C_202B_200F_200C_202D_200B_206A_206A_202B_206C_206A_202C_202C_202B_206A_202A_202E(base.Task.JumpDestination) ?? 0.5f));
|
|
return base.Start();
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
public unsafe override ETaskResult Update()
|
|
{
|
|
int num = ((_206A_202B_206B_202B_202C_200B_202B_202D_206F_200D_202D_200F_206F_206F_200F_202E_200D_200F_200B_202A_200B_200E_206D_206B_202A_206F_206A_206F_206C_206E_200D_206E_200B_202D_202A_206A_206C_200F_206A_206C_202E() < _continueAt) ? 1172986635 : 1172986637);
|
|
IPlayerCharacter playerCharacter = default(IPlayerCharacter);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1172986631;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 4:
|
|
num = ((_attempts < 50) ? 1172986624 : 1172986639);
|
|
break;
|
|
case 10:
|
|
num = ((!_206D_206B_206A_206D_202A_202D_206D_206A_200E_202A_202E_202E_206E_200C_206B_202D_206F_200E_200D_200C_206F_206E_202B_202D_200F_200B_206C_200C_202E_200F_206C_200E_202E_200C_202D_202B_206D_200E_202A_206A_202E(_003Ccondition_003EP, ConditionFlag.Jumping)) ? 1172986626 : 1172986635);
|
|
break;
|
|
case 2:
|
|
_200F_206F_200B_200C_202D_206C_202A_202A_202D_206D_200E_200B_202D_202B_206A_202A_206D_206F_200F_202E_200D_202A_200B_206F_200E_200B_206A_202B_200E_206A_206A_206F_200B_202A_200D_206D_200E_206F_200E_206C_202E((ILogger)_003Clogger_003EP, 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>(-1550993377), new object[2]
|
|
{
|
|
_202E_206C_206B_200D_200F_202D_202D_200B_206E_202A_202B_206B_200D_202E_200F_202C_202D_206D_202C_206B_206A_206E_200C_206A_202C_206E_206E_202C_200E_202D_202D_202E_206F_202E_206D_206F_202A_202C_200C_206B_202E((IGameObject)playerCharacter).Y,
|
|
_206A_200C_200D_200C_202B_202E_202A_206F_202E_206B_200D_200E_202E_202A_200F_206B_206B_206D_202B_200B_200D_202D_202D_200B_206C_206D_206C_202B_206C_202E_206F_200C_200C_200B_200E_200C_200B_200F_206F_206C_202E(base.Task.JumpDestination).Y - 0.5f
|
|
});
|
|
num = ((!ActionManager.Instance()->UseAction(ActionType.GeneralAction, 2u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null)) ? 1172986627 : 1172986630);
|
|
break;
|
|
case 3:
|
|
num = 1172986637;
|
|
break;
|
|
case 7:
|
|
_continueAt = _206A_202B_206B_202B_202C_200B_202B_202D_206F_200D_202D_200F_206F_206F_200F_202E_200D_200F_200B_202A_200B_200E_206D_206B_202A_206F_206A_206F_206C_206E_200D_206E_200B_202D_202A_206A_206C_200F_206A_206C_202E() + (long)(1000f * (_202E_200B_206E_200B_206D_202B_202C_206C_200E_206C_202E_206E_202D_200E_200F_206D_202C_206F_206A_202D_206E_200D_202D_202C_202B_200F_200C_202D_200B_206A_206A_202B_206C_206A_202C_202C_202B_206A_202A_202E(base.Task.JumpDestination) ?? 0.5f));
|
|
return ETaskResult.StillRunning;
|
|
case 9:
|
|
num = ((!(_202E_206C_206B_200D_200F_202D_202D_200B_206E_202A_202B_206B_200D_202E_200F_202C_202D_206D_202C_206B_206A_206E_200C_206A_202C_206E_206E_202C_200E_202D_202D_202E_206F_202E_206D_206F_202A_202C_200C_206B_202E((IGameObject)playerCharacter).Y >= _206A_200C_200D_200C_202B_202E_202A_206F_202E_206B_200D_200E_202E_202A_200F_206B_206B_206D_202B_200B_200D_202D_202D_200B_206C_206D_206C_202B_206C_202E_206F_200C_200C_200B_200E_200C_200B_200F_206F_206C_202E(base.Task.JumpDestination).Y - 0.5f)) ? 1172986629 : 1172986631);
|
|
break;
|
|
case 6:
|
|
return ETaskResult.TaskComplete;
|
|
case 12:
|
|
return ETaskResult.StillRunning;
|
|
case 5:
|
|
playerCharacter = _200F_200B_206F_202B_206B_202D_206F_206C_206A_200F_206F_200F_200D_206F_206C_206E_200C_200B_206D_206C_200D_200B_202E_200D_202E_202C_206C_200F_200F_202C_200E_206F_206E_202E_206B_200F_200F_200D_200F_206F_202E(_objectTable);
|
|
num = ((playerCharacter != null) ? 1172986636 : 1172986625);
|
|
break;
|
|
case 0:
|
|
return ETaskResult.TaskComplete;
|
|
case 8:
|
|
throw new TaskException(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>(1093799648));
|
|
case 11:
|
|
{
|
|
float num9 = _200D_206B_202D_200B_206C_206A_200C_200F_202B_206A_202A_202A_202C_206D_202E_200C_202A_200B_202D_200F_206C_200B_202C_202A_200F_200B_206F_200B_200F_202B_202C_200E_200E_206A_200C_200B_202D_206B_200E_202C_202E(base.Task.JumpDestination);
|
|
num = (((_202E_206C_206B_200D_200F_202D_202D_200B_206E_202A_202B_206B_200D_202E_200F_202C_202D_206D_202C_206B_206A_206E_200C_206A_202C_206E_206E_202C_200E_202D_202D_202E_206F_202E_206D_206F_202A_202C_200C_206B_202E((IGameObject)playerCharacter) - _206A_200C_200D_200C_202B_202E_202A_206F_202E_206B_200D_200E_202E_202A_200F_206B_206B_206D_202B_200B_200D_202D_202D_200B_206C_206D_206C_202B_206C_202E_206F_200C_200C_200B_200E_200C_200B_200F_206F_206C_202E(base.Task.JumpDestination)).Length() <= num9) ? 1172986631 : 1172986638);
|
|
break;
|
|
}
|
|
case 1:
|
|
{
|
|
int attempts = _attempts;
|
|
num3 = 1;
|
|
num4 = attempts;
|
|
int num7 = num4 ^ num3;
|
|
int num8 = num4 & num3;
|
|
_attempts = num7 + (num8 + num8);
|
|
num = 1172986627;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
static long _206A_202B_206B_202B_202C_200B_202B_202D_206F_200D_202D_200F_206F_206F_200F_202E_200D_200F_200B_202A_200B_200E_206D_206B_202A_206F_206A_206F_206C_206E_200D_206E_200B_202D_202A_206A_206C_200F_206A_206C_202E()
|
|
{
|
|
return Environment.TickCount64;
|
|
}
|
|
|
|
static float? _202E_200B_206E_200B_206D_202B_202C_206C_200E_206C_202E_206E_202D_200E_200F_206D_202C_206F_206A_202D_206E_200D_202D_202C_202B_200F_200C_202D_200B_206A_206A_202B_206C_206A_202C_202C_202B_206A_202A_202E(JumpDestination P_0)
|
|
{
|
|
return P_0.DelaySeconds;
|
|
}
|
|
|
|
static bool _206D_206B_206A_206D_202A_202D_206D_206A_200E_202A_202E_202E_206E_200C_206B_202D_206F_200E_200D_200C_206F_206E_202B_202D_200F_200B_206C_200C_202E_200F_206C_200E_202E_200C_202D_202B_206D_200E_202A_206A_202E(ICondition P_0, ConditionFlag P_1)
|
|
{
|
|
return P_0[P_1];
|
|
}
|
|
|
|
static IPlayerCharacter _200F_200B_206F_202B_206B_202D_206F_206C_206A_200F_206F_200F_200D_206F_206C_206E_200C_200B_206D_206C_200D_200B_202E_200D_202E_202C_206C_200F_200F_202C_200E_206F_206E_202E_206B_200F_200F_200D_200F_206F_202E(IObjectTable P_0)
|
|
{
|
|
return P_0.LocalPlayer;
|
|
}
|
|
|
|
static float _200D_206B_202D_200B_206C_206A_200C_200F_202B_206A_202A_202A_202C_206D_202E_200C_202A_200B_202D_200F_206C_200B_202C_202A_200F_200B_206F_200B_200F_202B_202C_200E_200E_206A_200C_200B_202D_206B_200E_202C_202E(JumpDestination P_0)
|
|
{
|
|
return P_0.CalculateStopDistance();
|
|
}
|
|
|
|
static Vector3 _202E_206C_206B_200D_200F_202D_202D_200B_206E_202A_202B_206B_200D_202E_200F_202C_202D_206D_202C_206B_206A_206E_200C_206A_202C_206E_206E_202C_200E_202D_202D_202E_206F_202E_206D_206F_202A_202C_200C_206B_202E(IGameObject P_0)
|
|
{
|
|
return P_0.Position;
|
|
}
|
|
|
|
static Vector3 _206A_200C_200D_200C_202B_202E_202A_206F_202E_206B_200D_200E_202E_202A_200F_206B_206B_206D_202B_200B_200D_202D_202D_200B_206C_206D_206C_202B_206C_202E_206F_200C_200C_200B_200E_200C_200B_200F_206F_206C_202E(JumpDestination P_0)
|
|
{
|
|
return P_0.Position;
|
|
}
|
|
|
|
static void _200F_206F_200B_200C_202D_206C_202A_202A_202D_206D_200E_200B_202D_202B_206A_202A_206D_206F_200F_202E_200D_202A_200B_206F_200E_200B_206A_202B_200E_206A_206A_206F_200B_202A_200D_206D_200E_206F_200E_206C_202E(ILogger P_0, string P_1, object[] P_2)
|
|
{
|
|
P_0.LogTrace(P_1, P_2);
|
|
}
|
|
}
|
|
}
|