forked from aly/qstbak
muffin v7.5.11
This commit is contained in:
parent
addf2d530f
commit
3102923ce2
522 changed files with 41082 additions and 211592 deletions
|
|
@ -25,58 +25,22 @@ public sealed class StallDetector(StallDetectorOptions options)
|
|||
|
||||
public StallVerdict? Observe(in StallSample sample)
|
||||
{
|
||||
int num = (sample.Driving ? 860999294 : 860999280);
|
||||
bool flag = default(bool);
|
||||
while (true)
|
||||
if (!sample.Driving)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 860999289;
|
||||
int num4 = num2;
|
||||
int num5;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 8:
|
||||
num5 = (sample.DistanceToTarget.HasValue ? 1 : 0);
|
||||
goto IL_0163;
|
||||
case 4:
|
||||
num = ((sample.TimestampMs - _lastDrivenMs > options.ContinuityGapMs) ? 860999295 : 860999282);
|
||||
break;
|
||||
case 1:
|
||||
return ObserveProgress(in sample);
|
||||
case 11:
|
||||
num = ((sample.Mode != _anchorMode) ? 860999295 : 860999289);
|
||||
break;
|
||||
case 10:
|
||||
return ObserveDisplacement(in sample);
|
||||
case 7:
|
||||
num = ((sample.Mode == DriveMode.Ground) ? 860999292 : 860999281);
|
||||
break;
|
||||
case 2:
|
||||
num = 860999280;
|
||||
break;
|
||||
case 6:
|
||||
Anchor(in sample, flag);
|
||||
return null;
|
||||
case 9:
|
||||
return null;
|
||||
case 0:
|
||||
num = ((flag == _anchorUsesProgress) ? 860999290 : 860999295);
|
||||
break;
|
||||
case 5:
|
||||
num5 = 0;
|
||||
goto IL_0163;
|
||||
case 3:
|
||||
{
|
||||
_lastDrivenMs = sample.TimestampMs;
|
||||
num = (flag ? 860999288 : 860999283);
|
||||
break;
|
||||
}
|
||||
IL_0163:
|
||||
flag = (byte)num5 != 0;
|
||||
num = ((!_hasAnchor) ? 860999295 : 860999293);
|
||||
break;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
bool flag = sample.Mode != DriveMode.Ground && sample.DistanceToTarget.HasValue;
|
||||
if (!_hasAnchor || sample.TimestampMs - _lastDrivenMs > options.ContinuityGapMs || sample.Mode != _anchorMode || flag != _anchorUsesProgress)
|
||||
{
|
||||
Anchor(in sample, flag);
|
||||
return null;
|
||||
}
|
||||
_lastDrivenMs = sample.TimestampMs;
|
||||
if (!flag)
|
||||
{
|
||||
return ObserveDisplacement(in sample);
|
||||
}
|
||||
return ObserveProgress(in sample);
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
|
|
@ -88,118 +52,53 @@ public sealed class StallDetector(StallDetectorOptions options)
|
|||
private StallVerdict? ObserveProgress(in StallSample sample)
|
||||
{
|
||||
float value = sample.DistanceToTarget.Value;
|
||||
int num = ((!(value < _bestDistance)) ? 755996687 : 755996681);
|
||||
long num7 = default(long);
|
||||
float num8 = default(float);
|
||||
while (true)
|
||||
if (value < _bestDistance)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 755996685;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
num = 755996681;
|
||||
break;
|
||||
case 3:
|
||||
return null;
|
||||
case 6:
|
||||
return Trip(in sample, num7, num8);
|
||||
case 2:
|
||||
num8 = _referenceBestDistance - _bestDistance;
|
||||
num = ((!(num8 >= options.ProgressImprovementThreshold)) ? 755996684 : 755996680);
|
||||
break;
|
||||
case 5:
|
||||
_referenceBestDistance = _bestDistance;
|
||||
_anchorMs = sample.TimestampMs;
|
||||
_anchorPosition = sample.Position;
|
||||
return null;
|
||||
case 1:
|
||||
num7 = sample.TimestampMs - _anchorMs;
|
||||
num = ((num7 < options.ProgressWindowMs) ? 755996686 : 755996683);
|
||||
break;
|
||||
case 4:
|
||||
_bestDistance = value;
|
||||
num = 755996687;
|
||||
break;
|
||||
}
|
||||
_bestDistance = value;
|
||||
}
|
||||
float num = _referenceBestDistance - _bestDistance;
|
||||
if (num >= options.ProgressImprovementThreshold)
|
||||
{
|
||||
_referenceBestDistance = _bestDistance;
|
||||
_anchorMs = sample.TimestampMs;
|
||||
_anchorPosition = sample.Position;
|
||||
return null;
|
||||
}
|
||||
long num2 = sample.TimestampMs - _anchorMs;
|
||||
if (num2 >= options.ProgressWindowMs)
|
||||
{
|
||||
return Trip(in sample, num2, num);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private StallVerdict? ObserveDisplacement(in StallSample sample)
|
||||
{
|
||||
int num = ((sample.Mode == DriveMode.Ground) ? 508532326 : 508532323);
|
||||
long num9 = default(long);
|
||||
float num8 = default(float);
|
||||
while (true)
|
||||
float num = ((sample.Mode == DriveMode.Ground) ? DistanceXZ(_anchorPosition, sample.Position) : Vector3.Distance(_anchorPosition, sample.Position));
|
||||
if (num >= options.GroundDistanceThreshold)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 508532327;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
float num7;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 2:
|
||||
num9 = sample.TimestampMs - _anchorMs;
|
||||
num = ((num9 < options.GroundWindowMs) ? 508532324 : 508532322);
|
||||
break;
|
||||
case 5:
|
||||
return Trip(in sample, num9, num8);
|
||||
case 1:
|
||||
num7 = DistanceXZ(_anchorPosition, sample.Position);
|
||||
goto IL_00ae;
|
||||
case 3:
|
||||
return null;
|
||||
case 0:
|
||||
num = 508532323;
|
||||
break;
|
||||
case 4:
|
||||
num7 = Vector3.Distance(_anchorPosition, sample.Position);
|
||||
goto IL_00ae;
|
||||
case 6:
|
||||
{
|
||||
_anchorMs = sample.TimestampMs;
|
||||
_anchorPosition = sample.Position;
|
||||
return null;
|
||||
}
|
||||
IL_00ae:
|
||||
num8 = num7;
|
||||
num = ((!(num8 >= options.GroundDistanceThreshold)) ? 508532325 : 508532321);
|
||||
break;
|
||||
}
|
||||
_anchorMs = sample.TimestampMs;
|
||||
_anchorPosition = sample.Position;
|
||||
return null;
|
||||
}
|
||||
long num2 = sample.TimestampMs - _anchorMs;
|
||||
if (num2 >= options.GroundWindowMs)
|
||||
{
|
||||
return Trip(in sample, num2, num);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private StallVerdict? Trip(in StallSample sample, long elapsedMs, float measured)
|
||||
{
|
||||
bool num = sample.TimestampMs < _cooldownUntilMs;
|
||||
Anchor(in sample, _anchorUsesProgress);
|
||||
int num2 = ((!num) ? (-1156731677) : (-1156731680));
|
||||
while (true)
|
||||
if (num)
|
||||
{
|
||||
int num3 = num2;
|
||||
int num4 = -1156731679;
|
||||
int num5 = num3;
|
||||
int num6 = num5 + num4;
|
||||
int num7 = num5 & num4;
|
||||
switch (num6 - (num7 + num7))
|
||||
{
|
||||
case 2:
|
||||
_cooldownUntilMs = sample.TimestampMs + options.CooldownMs;
|
||||
return new StallVerdict(elapsedMs, measured, sample.Mode);
|
||||
case 1:
|
||||
return null;
|
||||
case 0:
|
||||
goto IL_0092;
|
||||
}
|
||||
continue;
|
||||
IL_0092:
|
||||
num2 = -1156731680;
|
||||
return null;
|
||||
}
|
||||
_cooldownUntilMs = sample.TimestampMs + options.CooldownMs;
|
||||
return new StallVerdict(elapsedMs, measured, sample.Mode);
|
||||
}
|
||||
|
||||
private void Anchor(in StallSample sample, bool usesProgress)
|
||||
|
|
@ -217,11 +116,6 @@ public sealed class StallDetector(StallDetectorOptions options)
|
|||
{
|
||||
float num = a.X - b.X;
|
||||
float num2 = a.Z - b.Z;
|
||||
return _206A_202D_200C_206C_206C_206B_202D_202E_206B_200B_200B_206F_206F_202B_200D_200F_206A_202C_200C_202A_202D_202C_200B_206F_206F_200F_206F_206B_206E_200D_202C_200C_200D_206F_202A_202D_202D_200B_200D_202C_202E(num * num + num2 * num2);
|
||||
}
|
||||
|
||||
static float _206A_202D_200C_206C_206C_206B_202D_202E_206B_200B_200B_206F_206F_202B_200D_200F_206A_202C_200C_202A_202D_202C_200B_206F_206F_200F_206F_206B_206E_200D_202C_200C_200D_206F_202A_202D_202D_200B_200D_202C_202E(float P_0)
|
||||
{
|
||||
return MathF.Sqrt(P_0);
|
||||
return MathF.Sqrt(num * num + num2 * num2);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue