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

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,170 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
[CompilerGenerated]
internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, IList, IEnumerable<T>, IReadOnlyCollection<T>, IReadOnlyList<T>, ICollection<T>, IList<T>
{
int ICollection.Count => _items.Length;
bool ICollection.IsSynchronized => false;
object ICollection.SyncRoot => this;
object? IList.this[int index]
{
get
{
return _items[index];
}
set
{
throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E();
}
}
bool IList.IsFixedSize => true;
bool IList.IsReadOnly => true;
int IReadOnlyCollection<T>.Count => _items.Length;
T IReadOnlyList<T>.this[int index] => _items[index];
int ICollection<T>.Count => _items.Length;
bool ICollection<T>.IsReadOnly => true;
T IList<T>.this[int index]
{
get
{
return _items[index];
}
set
{
throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E();
}
}
public _003C_003Ez__ReadOnlyArray(T[] items)
{
_items = items;
}
IEnumerator IEnumerable.GetEnumerator()
{
return _206A_202A_200B_206E_202C_206C_200E_206D_200C_200C_202D_202D_202A_200F_202C_200D_200C_206D_202C_200F_206F_202D_206A_200B_206F_202E_206A_200F_200C_200C_206A_206A_206B_202C_200E_202A_200D_202E_202B_206E_202E((IEnumerable)_items);
}
void ICollection.CopyTo(Array array, int index)
{
_200E_200F_206D_200E_202A_200D_202C_206C_200C_202C_202E_200C_206A_206E_206E_206A_206D_202D_206C_200B_200E_202B_200D_206B_200F_202A_202C_206B_200D_206F_200E_200B_200D_206D_202C_202C_200B_206B_200C_202B_202E((ICollection)_items, array, index);
}
int IList.Add(object? value)
{
throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E();
}
void IList.Clear()
{
throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E();
}
bool IList.Contains(object? value)
{
return _200F_206F_202C_206A_206E_206E_200B_206A_202E_202A_200C_202C_206E_206C_202C_202E_206B_206B_202C_200E_200C_202E_200E_202D_200B_202A_206A_200E_202E_202B_206B_200E_202C_200B_200C_200E_200F_202D_206F_200C_202E((IList)_items, value);
}
int IList.IndexOf(object? value)
{
return _202B_200F_202D_200D_200D_206C_202A_200F_200F_202B_200C_200D_200F_202D_206B_202E_202B_206A_206B_200D_202C_200E_206D_206C_200F_206F_206D_200F_202D_206F_200B_206B_206A_200F_200E_200B_206F_202D_200F_202E_202E((IList)_items, value);
}
void IList.Insert(int index, object? value)
{
throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E();
}
void IList.Remove(object? value)
{
throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E();
}
void IList.RemoveAt(int index)
{
throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E();
}
IEnumerator<T> IEnumerable<T>.GetEnumerator()
{
return ((IEnumerable<T>)_items).GetEnumerator();
}
void ICollection<T>.Add(T item)
{
throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E();
}
void ICollection<T>.Clear()
{
throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E();
}
bool ICollection<T>.Contains(T item)
{
return ((ICollection<T>)_items).Contains(item);
}
void ICollection<T>.CopyTo(T[] array, int arrayIndex)
{
((ICollection<T>)_items).CopyTo(array, arrayIndex);
}
bool ICollection<T>.Remove(T item)
{
throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E();
}
int IList<T>.IndexOf(T item)
{
return ((IList<T>)_items).IndexOf(item);
}
void IList<T>.Insert(int index, T item)
{
throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E();
}
void IList<T>.RemoveAt(int index)
{
throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E();
}
static IEnumerator _206A_202A_200B_206E_202C_206C_200E_206D_200C_200C_202D_202D_202A_200F_202C_200D_200C_206D_202C_200F_206F_202D_206A_200B_206F_202E_206A_200F_200C_200C_206A_206A_206B_202C_200E_202A_200D_202E_202B_206E_202E(IEnumerable P_0)
{
return P_0.GetEnumerator();
}
static void _200E_200F_206D_200E_202A_200D_202C_206C_200C_202C_202E_200C_206A_206E_206E_206A_206D_202D_206C_200B_200E_202B_200D_206B_200F_202A_202C_206B_200D_206F_200E_200B_200D_206D_202C_202C_200B_206B_200C_202B_202E(ICollection P_0, Array P_1, int P_2)
{
P_0.CopyTo(P_1, P_2);
}
static NotSupportedException _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E()
{
return new NotSupportedException();
}
static bool _200F_206F_202C_206A_206E_206E_200B_206A_202E_202A_200C_202C_206E_206C_202C_202E_206B_206B_202C_200E_200C_202E_200E_202D_200B_202A_206A_200E_202E_202B_206B_200E_202C_200B_200C_200E_200F_202D_206F_200C_202E(IList P_0, object P_1)
{
return P_0.Contains(P_1);
}
static int _202B_200F_202D_200D_200D_206C_202A_200F_200F_202B_200C_200D_200F_202D_206B_202E_202B_206A_206B_200D_202C_200E_206D_206C_200F_206F_206D_200F_202D_206F_200B_206B_206A_200F_200E_200B_206F_202D_200F_202E_202E(IList P_0, object P_1)
{
return P_0.IndexOf(P_1);
}
}

View file

@ -0,0 +1,306 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
[CompilerGenerated]
internal sealed class _003C_003Ez__ReadOnlySingleElementList<T> : IEnumerable, ICollection, IList, IEnumerable<T>, IReadOnlyCollection<T>, IReadOnlyList<T>, ICollection<T>, IList<T>
{
private sealed class Enumerator : IDisposable, IEnumerator, IEnumerator<T>
{
object IEnumerator.Current => _item;
T IEnumerator<T>.Current => _item;
public Enumerator(T item)
{
_item = item;
}
bool IEnumerator.MoveNext()
{
int num = (_moveNextCalled ? 247413323 : 247413320);
while (true)
{
int num2 = num;
int num3 = 247413322;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 1:
return false;
case 2:
return _moveNextCalled = true;
case 0:
goto IL_0055;
}
continue;
IL_0055:
num = 247413320;
}
}
void IEnumerator.Reset()
{
_moveNextCalled = false;
}
void IDisposable.Dispose()
{
}
}
int ICollection.Count => 1;
bool ICollection.IsSynchronized => false;
object ICollection.SyncRoot => this;
object? IList.this[int index]
{
get
{
int num = ((index == 0) ? 2495584 : 2495587);
while (true)
{
int num2 = num;
int num3 = 2495585;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 1:
return _item;
case 2:
throw _202D_202E_202A_206A_206C_200F_202B_200F_202A_206B_200B_202A_202C_202A_206A_206C_202B_200F_202A_206B_202C_202D_200F_200E_202C_206D_206C_206C_202E_200B_200E_200F_200F_200C_206C_202C_206F_206E_200B_202E_202E();
case 0:
goto IL_0055;
}
continue;
IL_0055:
num = 2495587;
}
}
set
{
throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E();
}
}
bool IList.IsFixedSize => true;
bool IList.IsReadOnly => true;
int IReadOnlyCollection<T>.Count => 1;
T IReadOnlyList<T>.this[int index]
{
get
{
int num = ((index == 0) ? (-1500986328) : (-1500986325));
while (true)
{
int num2 = num;
int num3 = -1500986327;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 1:
return _item;
case 2:
throw _202D_202E_202A_206A_206C_200F_202B_200F_202A_206B_200B_202A_202C_202A_206A_206C_202B_200F_202A_206B_202C_202D_200F_200E_202C_206D_206C_206C_202E_200B_200E_200F_200F_200C_206C_202C_206F_206E_200B_202E_202E();
case 0:
goto IL_004e;
}
continue;
IL_004e:
num = -1500986325;
}
}
}
int ICollection<T>.Count => 1;
bool ICollection<T>.IsReadOnly => true;
T IList<T>.this[int index]
{
get
{
int num = ((index == 0) ? 246612200 : 246612201);
while (true)
{
int num2 = num;
int num3 = 246612200;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
goto IL_0041;
case 0:
return _item;
case 1:
throw _202D_202E_202A_206A_206C_200F_202B_200F_202A_206B_200B_202A_202C_202A_206A_206C_202B_200F_202A_206B_202C_202D_200F_200E_202C_206D_206C_206C_202E_200B_200E_200F_200F_200C_206C_202C_206F_206E_200B_202E_202E();
}
continue;
IL_0041:
num = 246612201;
}
}
set
{
throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E();
}
}
public _003C_003Ez__ReadOnlySingleElementList(T item)
{
_item = item;
}
IEnumerator IEnumerable.GetEnumerator()
{
return new Enumerator(_item);
}
void ICollection.CopyTo(Array array, int index)
{
_206C_200B_202C_206B_206C_200D_202D_202E_206B_206A_206D_200B_206D_200B_206E_200D_206F_206F_206E_206B_202E_200E_206E_200C_202D_202A_206E_206B_200B_202D_202E_202E_206D_202D_202B_200E_206A_202D_202E_206C_202E(array, (object)_item, index);
}
int IList.Add(object? value)
{
throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E();
}
void IList.Clear()
{
throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E();
}
bool IList.Contains(object? value)
{
return EqualityComparer<T>.Default.Equals(_item, (T)value);
}
int IList.IndexOf(object? value)
{
int num = (EqualityComparer<T>.Default.Equals(_item, (T)value) ? 135208521 : 135208522);
while (true)
{
int num2 = num;
int num3 = 135208520;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
goto IL_0056;
case 2:
return -1;
case 1:
return 0;
}
continue;
IL_0056:
num = 135208522;
}
}
void IList.Insert(int index, object? value)
{
throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E();
}
void IList.Remove(object? value)
{
throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E();
}
void IList.RemoveAt(int index)
{
throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E();
}
IEnumerator<T> IEnumerable<T>.GetEnumerator()
{
return new Enumerator(_item);
}
void ICollection<T>.Add(T item)
{
throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E();
}
void ICollection<T>.Clear()
{
throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E();
}
bool ICollection<T>.Contains(T item)
{
return EqualityComparer<T>.Default.Equals(_item, item);
}
void ICollection<T>.CopyTo(T[] array, int arrayIndex)
{
array[arrayIndex] = _item;
}
bool ICollection<T>.Remove(T item)
{
throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E();
}
int IList<T>.IndexOf(T item)
{
int num = (EqualityComparer<T>.Default.Equals(_item, item) ? (-2052686167) : (-2052686166));
while (true)
{
int num2 = num;
int num3 = -2052686165;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
goto IL_0053;
case 1:
return -1;
case 2:
return 0;
}
continue;
IL_0053:
num = -2052686166;
}
}
void IList<T>.Insert(int index, T item)
{
throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E();
}
void IList<T>.RemoveAt(int index)
{
throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E();
}
static void _206C_200B_202C_206B_206C_200D_202D_202E_206B_206A_206D_200B_206D_200B_206E_200D_206F_206F_206E_206B_202E_200E_206E_200C_202D_202A_206E_206B_200B_202D_202E_202E_206D_202D_202B_200E_206A_202D_202E_206C_202E(Array P_0, object P_1, int P_2)
{
P_0.SetValue(P_1, P_2);
}
static IndexOutOfRangeException _202D_202E_202A_206A_206C_200F_202B_200F_202A_206B_200B_202A_202C_202A_206A_206C_202B_200F_202A_206B_202C_202D_200F_200E_202C_206D_206C_206C_202E_200B_200E_200F_200F_200C_206C_202C_206F_206E_200B_202E_202E()
{
return new IndexOutOfRangeException();
}
static NotSupportedException _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E()
{
return new NotSupportedException();
}
}

1678
SmartNav/-Module-.cs Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,169 @@
using System;
using System.Collections.Generic;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Text;
namespace SmartNav.Data;
internal sealed record ExitRangeEntry(ushort SourceTerritoryId, uint InstanceId, Vector3 SourcePosition, ushort DestTerritoryId, uint DestInstanceId, uint ReturnInstanceId, Vector3 Rotation = default(Vector3), Vector3 HalfExtents = default(Vector3))
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _200F_202B_200D_200E_200B_200B_202A_202A_200E_200B_200B_206D_202B_206B_202D_206D_200B_206D_206F_202C_206A_200D_206D_206D_206E_200E_200B_206A_202E_206C_206C_206C_206A_206D_206C_206B_202D_200E_206A_202C_202E(typeof(ExitRangeEntry).TypeHandle);
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _200E_206B_200D_206D_206D_200E_200B_206C_200D_202E_202A_202D_202C_202E_206A_206F_200C_202A_202A_200F_200C_200E_202C_206D_202D_206A_206E_206B_200D_200C_202C_206E_206B_206F_202E_200F_202B_200F_206E_202A_202E();
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(347281461));
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-979564187));
int num = ((!PrintMembers(stringBuilder)) ? (-1576777821) : (-1576777824));
while (true)
{
int num2 = num;
int num3 = -1576777823;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
num = -1576777824;
break;
case 1:
_202C_202B_206D_202E_202C_206C_206D_206B_202D_202B_200F_202B_200B_206A_206B_200F_206C_206D_202B_200D_202C_202A_200B_206B_202B_202D_206E_206E_200C_202B_202B_200E_202C_200B_200D_202A_206E_206E_206E_200E_202E(stringBuilder, ' ');
num = -1576777821;
break;
case 2:
_202C_202B_206D_202E_202C_206C_206D_206B_202D_202B_200F_202B_200B_206A_206B_200F_206C_206D_202B_200D_202C_202A_200B_206B_202B_202D_206E_206E_200C_202B_202B_200E_202C_200B_200D_202A_206E_206E_206E_200E_202E(stringBuilder, '}');
return _202D_206B_206C_200B_202C_206B_200B_200F_200E_206D_200D_202E_202C_200E_202C_206D_200C_206B_206A_206B_202A_202C_206D_202D_206D_206B_202B_200E_200E_206F_200E_206C_206E_206F_206E_202B_206F_200E_206D_202B_202E((object)stringBuilder);
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_202C_200C_202A_202D_206B_202B_202D_206D_200D_200C_200C_206A_202B_200C_206A_206E_202B_206D_200E_202A_202D_200F_200B_206F_200B_200F_206E_206E_202B_202D_206C_200E_202A_200C_202E_202D_206B_202A_206A_200E_202E();
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(2044495272));
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, SourceTerritoryId.ToString());
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1866378227));
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, InstanceId.ToString());
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-135037385));
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, SourcePosition.ToString());
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(1613414786));
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, DestTerritoryId.ToString());
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1889617405));
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, DestInstanceId.ToString());
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1625716735));
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, ReturnInstanceId.ToString());
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-2061524224));
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, Rotation.ToString());
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-1794994947));
_202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, HalfExtents.ToString());
return true;
}
[CompilerGenerated]
public bool Equals(ExitRangeEntry? other)
{
int num = (((object)this == other) ? 193782023 : 193782031);
while (true)
{
int num2 = num;
int num3 = 193782030;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 7:
return false;
case 10:
num = ((!EqualityComparer<Vector3>.Default.Equals(SourcePosition, other.SourcePosition)) ? 193782025 : 193782030);
break;
case 2:
num = ((!_202E_202C_206D_206E_202B_202B_202E_202A_200D_200F_206C_206D_200F_200B_200B_206B_200C_200E_202B_206D_202C_200B_202B_206A_206D_200C_202D_202A_202E_206F_202A_200E_206A_206C_200D_202D_202B_202D_200B_202B_202E(EqualityContract, other.EqualityContract)) ? 193782025 : 193782022);
break;
case 5:
num = ((!EqualityComparer<uint>.Default.Equals(ReturnInstanceId, other.ReturnInstanceId)) ? 193782025 : 193782024);
break;
case 1:
num = (((object)other == null) ? 193782025 : 193782028);
break;
case 11:
num = ((!EqualityComparer<uint>.Default.Equals(DestInstanceId, other.DestInstanceId)) ? 193782025 : 193782027);
break;
case 0:
num = ((!EqualityComparer<ushort>.Default.Equals(DestTerritoryId, other.DestTerritoryId)) ? 193782025 : 193782021);
break;
case 12:
return EqualityComparer<Vector3>.Default.Equals(HalfExtents, other.HalfExtents);
case 3:
num = 193782031;
break;
case 8:
num = ((!EqualityComparer<ushort>.Default.Equals(SourceTerritoryId, other.SourceTerritoryId)) ? 193782025 : 193782026);
break;
case 4:
num = ((!EqualityComparer<uint>.Default.Equals(InstanceId, other.InstanceId)) ? 193782025 : 193782020);
break;
case 9:
return true;
case 6:
num = ((!EqualityComparer<Vector3>.Default.Equals(Rotation, other.Rotation)) ? 193782025 : 193782018);
break;
}
}
}
bool IEquatable<ExitRangeEntry>.Equals(ExitRangeEntry? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type _200F_202B_200D_200E_200B_200B_202A_202A_200E_200B_200B_206D_202B_206B_202D_206D_200B_206D_206F_202C_206A_200D_206D_206D_206E_200E_200B_206A_202E_206C_206C_206C_206A_206D_206C_206B_202D_200E_206A_202C_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder _200E_206B_200D_206D_206D_200E_200B_206C_200D_202E_202A_202D_202C_202E_206A_206F_200C_202A_202A_200F_200C_200E_202C_206D_202D_206A_206E_206B_200D_200C_202C_206E_206B_206F_202E_200F_202B_200F_206E_202A_202E()
{
return new StringBuilder();
}
static StringBuilder _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _202C_202B_206D_202E_202C_206C_206D_206B_202D_202B_200F_202B_200B_206A_206B_200F_206C_206D_202B_200D_202C_202A_200B_206B_202B_202D_206E_206E_200C_202B_202B_200E_202C_200B_200D_202A_206E_206E_206E_200E_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _202D_206B_206C_200B_202C_206B_200B_200F_200E_206D_200D_202E_202C_200E_202C_206D_200C_206B_206A_206B_202A_202C_206D_202D_206D_206B_202B_200E_200E_206F_200E_206C_206E_206F_206E_202B_206F_200E_206D_202B_202E(object P_0)
{
return P_0.ToString();
}
static void _202C_200C_202A_202D_206B_202B_202D_206D_200D_200C_200C_206A_202B_200C_206A_206E_202B_206D_200E_202A_202D_200F_200B_206F_200B_200F_206E_206E_202B_202D_206C_200E_202A_200C_202E_202D_206B_202A_206A_200E_202E()
{
RuntimeHelpers.EnsureSufficientExecutionStack();
}
static bool _202E_202C_206D_206E_202B_202B_202E_202A_200D_200F_206C_206D_200F_200B_200B_206B_200C_200E_202B_206D_202C_200B_202B_206A_206D_200C_202D_202A_202E_206F_202A_200E_206A_206C_200D_202D_202B_202D_200B_202B_202E(Type P_0, Type P_1)
{
return P_0 == P_1;
}
}

View file

@ -0,0 +1,9 @@
using System.Collections.Generic;
using SmartNav.Model.Navigation;
namespace SmartNav.Data;
public interface IZoneBoundarySource
{
IReadOnlyList<ZoneBoundary> GetBoundaries();
}

View file

@ -0,0 +1,411 @@
using System;
using System.Collections.Generic;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Threading;
using Dalamud.Plugin.Services;
using LLib.GameData;
using Lumina.Data.Files;
using Lumina.Data.Parsing.Layer;
using Lumina.Excel;
using Lumina.Excel.Sheets;
using Microsoft.Extensions.Logging;
using SmartNav.Model.Navigation;
namespace SmartNav.Data;
public sealed class LgbZoneBoundarySource : IZoneBoundarySource
{
private readonly IDataManager _dataManager;
private readonly ILogger<LgbZoneBoundarySource> _logger;
private readonly Lazy<IReadOnlyList<ZoneBoundary>> _boundaries;
public LgbZoneBoundarySource(IDataManager dataManager, ILogger<LgbZoneBoundarySource> logger)
{
_dataManager = dataManager;
_logger = logger;
_boundaries = new Lazy<IReadOnlyList<ZoneBoundary>>(Build, LazyThreadSafetyMode.ExecutionAndPublication);
}
public IReadOnlyList<ZoneBoundary> GetBoundaries()
{
return _boundaries.Value;
}
IReadOnlyList<ZoneBoundary> IZoneBoundarySource.GetBoundaries()
{
//ILSpy generated this explicit interface implementation from .override directive in GetBoundaries
return this.GetBoundaries();
}
[MethodImpl(MethodImplOptions.NoInlining)]
private IReadOnlyList<ZoneBoundary> Build()
{
try
{
(List<ExitRangeEntry> ExitRanges, Dictionary<(ushort TerritoryId, uint InstanceId), PopRangeEntry> PopRangeIndex) tuple = CollectLgbData();
List<ExitRangeEntry> item = tuple.ExitRanges;
Dictionary<(ushort, uint), PopRangeEntry> item2 = tuple.PopRangeIndex;
List<ZoneBoundary> list = ZoneBoundaryDerivation.Derive(item, item2, _logger);
ZoneBoundaryDerivation.ApplyOverrides(list, ZoneBoundaryOverrides.FlyingPairs, ZoneBoundaryOverrides.PositionOverrides, _logger);
_206C_200B_206A_202D_206B_206B_206B_202B_202C_202E_202D_206B_206B_202C_200E_202E_206A_202E_200D_206E_206E_206D_206A_206C_206A_202E_206B_202E_202B_206E_202C_200C_206B_202B_206F_206C_206C_202E_202C_206D_202E((ILogger)_logger, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-981985917), new object[2] { list.Count, item.Count });
return list;
}
catch (Exception ex)
{
_202A_200E_202B_202E_200D_200F_200E_206F_206A_206C_202C_202B_200B_200C_200E_206A_206A_200E_202C_206F_202D_200B_202D_206A_200C_206D_200B_206D_206D_202B_206E_206B_206F_200E_202B_202D_200E_206C_202C_202D_202E((ILogger)_logger, ex, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(927516533), Array.Empty<object>());
return Array.Empty<ZoneBoundary>();
}
}
private (List<ExitRangeEntry> ExitRanges, Dictionary<(ushort TerritoryId, uint InstanceId), PopRangeEntry> PopRangeIndex) CollectLgbData()
{
List<ExitRangeEntry> list = new List<ExitRangeEntry>();
Dictionary<(ushort, uint), PopRangeEntry> dictionary = new Dictionary<(ushort, uint), PopRangeEntry>();
HashSet<uint> hashSet = new HashSet<uint>();
using (ExcelSheet<Aetheryte>.Enumerator enumerator = _dataManager.GetExcelSheet<Aetheryte>().GetEnumerator())
{
int num = 1763362761;
while (true)
{
int num2 = num;
int num3 = 1763362761;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 3:
num = 1763362761;
break;
case 0:
num = (enumerator.MoveNext() ? 1763362760 : 1763362763);
break;
case 1:
hashSet.Add(enumerator.Current.Territory.RowId);
num = 1763362761;
break;
case 2:
goto end_IL_003b;
}
continue;
end_IL_003b:
break;
}
}
ExcelSheet<TerritoryType> excelSheet = _dataManager.GetExcelSheet<TerritoryType>();
HashSet<string> visitedLgbPaths = new HashSet<string>();
using (ExcelSheet<TerritoryType>.Enumerator enumerator2 = excelSheet.GetEnumerator())
{
int num = -1445218693;
TerritoryType current = default(TerritoryType);
while (true)
{
int num5 = num;
int num3 = -1445218689;
int num4 = num5;
int num6 = num4 + num3;
int num7 = num4 & num3;
switch (num6 - (num7 + num7))
{
case 3:
num = -1445218693;
break;
case 1:
current = enumerator2.Current;
num = ((!hashSet.Contains(current.RowId)) ? (-1445218693) : (-1445218691));
break;
case 2:
ScanTerritory(list, dictionary, visitedLgbPaths, current);
num = -1445218693;
break;
case 4:
num = (enumerator2.MoveNext() ? (-1445218690) : (-1445218689));
break;
case 0:
goto end_IL_010c;
}
continue;
end_IL_010c:
break;
}
}
using (ExcelSheet<TerritoryType>.Enumerator enumerator2 = excelSheet.GetEnumerator())
{
int num = -1007277372;
while (true)
{
int num8 = num;
int num3 = -1007277372;
int num4 = num8;
int num9 = num4 + num3;
int num10 = num4 & num3;
switch (num9 - (num10 + num10))
{
case 2:
num = -1007277372;
break;
case 1:
{
TerritoryType current2 = enumerator2.Current;
ScanTerritory(list, dictionary, visitedLgbPaths, current2);
num = -1007277372;
break;
}
case 0:
num = (enumerator2.MoveNext() ? (-1007277371) : (-1007277369));
break;
case 3:
goto end_IL_01e4;
}
continue;
end_IL_01e4:
break;
}
}
return (ExitRanges: list, PopRangeIndex: dictionary);
}
private static bool IsNavigableOverworld(ETerritoryIntendedUse use)
{
int num = ((use > ETerritoryIntendedUse.HousingOutdoor) ? (-754120289) : (-754120291));
bool result = default(bool);
while (true)
{
int num2 = num;
int num3 = -754120292;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 5:
num = ((use == ETerritoryIntendedUse.Eureka) ? (-754120298) : (-754120294));
break;
case 12:
num = ((use - 21 <= ETerritoryIntendedUse.Inn) ? (-754120298) : (-754120295));
break;
case 11:
num = ((use - 60 > ETerritoryIntendedUse.Overworld) ? (-754120300) : (-754120298));
break;
case 0:
num = -754120291;
break;
case 6:
num = -754120300;
break;
case 3:
num = ((use > ETerritoryIntendedUse.Eureka) ? (-754120290) : (-754120304));
break;
case 1:
num = ((use <= ETerritoryIntendedUse.Overworld) ? (-754120298) : (-754120303));
break;
case 8:
result = false;
num = -754120296;
break;
case 10:
result = true;
num = -754120296;
break;
case 9:
num = ((use == ETerritoryIntendedUse.HousingOutdoor) ? (-754120298) : (-754120293));
break;
case 13:
num = ((use == ETerritoryIntendedUse.OpeningArea) ? (-754120298) : (-754120299));
break;
case 4:
return result;
case 2:
num = ((use - 48 <= ETerritoryIntendedUse.Overworld) ? (-754120298) : (-754120297));
break;
case 7:
num = -754120300;
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
private void ScanTerritory(List<ExitRangeEntry> exitRanges, Dictionary<(ushort TerritoryId, uint InstanceId), PopRangeEntry> popRangeIndex, HashSet<string> visitedLgbPaths, TerritoryType territory)
{
int num = ((territory.RowId != 0) ? 954333098 : 954333094);
string text4 = default(string);
int num16 = default(int);
string text = default(string);
int num9 = default(int);
LayerCommon.InstanceObject instanceObject = default(LayerCommon.InstanceObject);
int num11 = default(int);
LayerCommon.Layer[] array = default(LayerCommon.Layer[]);
LayerCommon.InstanceObject[] instanceObjects = default(LayerCommon.InstanceObject[]);
while (true)
{
int num2 = num;
int num3 = 954333091;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
num = 954333094;
break;
case 5:
return;
case 4:
{
string text2 = global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-747831667);
string text3 = text4;
int num15 = num16;
num3 = 1;
num4 = num15;
text = _206A_206C_202B_202E_200D_200B_206E_206D_206D_206E_200B_202A_200F_202C_202B_200F_202D_200F_200D_202A_206E_200B_200E_202A_202E_206C_206E_202C_200D_200F_200E_206F_200E_202A_206E_206B_206F_200B_200C_206D_202E(text2, _200F_200B_206F_202B_202D_206F_200D_202C_206F_206C_206E_202E_202D_206E_206B_206C_202E_202D_206E_202E_206D_200B_202D_200D_202A_202D_206C_200C_206B_206B_200C_200B_200F_200D_200C_206B_206B_206A_206B_200C_202E(text3, 0, (num4 | num3) + (num4 & num3)), global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1939239349));
num = (visitedLgbPaths.Add(text) ? 954333092 : 954333089);
break;
}
case 1:
num16 = _202A_206F_200D_202A_202C_206A_200C_202A_206C_206A_206F_200E_206D_206F_206C_200D_200B_202E_206F_202E_200E_206B_200C_206D_202A_202E_206E_200C_206E_206A_202B_206F_200F_206C_206A_200B_206B_202B_202E_200D_202E(text4, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(16137996), StringComparison.Ordinal);
num = ((num16 >= 0) ? 954333095 : 954333099);
break;
case 9:
num = (IsNavigableOverworld((ETerritoryIntendedUse)territory.TerritoryIntendedUse.RowId) ? 954333093 : 954333088);
break;
case 8:
return;
case 10:
return;
case 3:
return;
case 2:
return;
case 6:
text4 = territory.Bg.ExtractText();
num = ((!_206E_206A_200C_200E_202E_202D_202C_200B_206E_206A_200F_206E_202C_206F_200D_200C_200D_200D_202E_206C_206D_202E_206F_206E_200D_202E_206A_206A_200E_206B_200C_202C_202B_200F_206D_200C_202E_206F_202A_206C_202E(text4)) ? 954333090 : 954333097);
break;
case 7:
{
ushort num7 = (ushort)territory.RowId;
LgbFile file;
try
{
file = _dataManager.GetFile<LgbFile>(text);
}
catch (Exception ex)
{
_206D_206B_200C_200C_200E_200F_202D_206E_200E_206C_206A_200C_200E_202E_202A_200B_206C_206B_206F_200D_202A_202B_206A_200C_202C_202D_200B_202A_202E_206F_206D_202A_206C_200D_200F_200B_200E_206F_206E_206B_202E((ILogger)_logger, ex, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(422414557), new object[1] { text });
return;
}
num = ((file != null) ? (-1034574211) : (-1034574214));
while (true)
{
int num8 = num;
num3 = -1034574218;
num4 = num8;
switch ((num4 | num3) - (num4 & num3))
{
case 6:
{
int num12 = num9;
num3 = 1;
num4 = num12;
int num13 = num4 ^ num3;
int num14 = num4 & num3;
num9 = num13 + (num14 + num14);
num = -1034574220;
break;
}
case 0:
popRangeIndex[(num7, instanceObject.InstanceId)] = new PopRangeEntry(num7, instanceObject.InstanceId, new Vector3(instanceObject.Transform.Translation.X, instanceObject.Transform.Translation.Y, instanceObject.Transform.Translation.Z));
num = -1034574224;
break;
case 9:
num = ((num11 < array.Length) ? (-1034574210) : (-1034574219));
break;
case 11:
array = _206B_202A_206C_200B_200F_202D_200C_202D_206C_206E_206C_206E_202E_200B_202D_202C_206F_206F_202B_200E_202A_200C_202E_206E_206D_206E_202B_206E_200F_206F_200F_200E_206F_202D_202C_206E_200D_200F_202A_200E_202E(file);
num11 = 0;
num = -1034574209;
break;
case 12:
return;
case 8:
instanceObjects = array[num11].InstanceObjects;
num9 = 0;
num = -1034574220;
break;
case 7:
{
int num10 = num11;
num3 = 1;
num4 = num10;
num11 = (num4 | num3) + (num4 & num3);
num = -1034574209;
break;
}
case 3:
return;
case 10:
num = -1034574214;
break;
case 2:
num = ((num9 < instanceObjects.Length) ? (-1034574222) : (-1034574223));
break;
case 1:
{
LayerCommon.ExitRangeInstanceObject exitRangeInstanceObject = (LayerCommon.ExitRangeInstanceObject)(object)instanceObject.Object;
exitRanges.Add(new ExitRangeEntry(num7, instanceObject.InstanceId, new Vector3(instanceObject.Transform.Translation.X, instanceObject.Transform.Translation.Y, instanceObject.Transform.Translation.Z), exitRangeInstanceObject.TerritoryType, exitRangeInstanceObject.DestInstanceId, exitRangeInstanceObject.ReturnInstanceId, new Vector3(instanceObject.Transform.Rotation.X, instanceObject.Transform.Rotation.Y, instanceObject.Transform.Rotation.Z), new Vector3(instanceObject.Transform.Scale.X, instanceObject.Transform.Scale.Y, instanceObject.Transform.Scale.Z)));
num = -1034574224;
break;
}
case 5:
num = ((instanceObject.AssetType != LayerEntryType.PopRange) ? (-1034574224) : (-1034574218));
break;
case 4:
instanceObject = instanceObjects[num9];
num = ((instanceObject.AssetType != LayerEntryType.ExitRange) ? (-1034574221) : (-1034574217));
break;
}
}
}
}
}
}
static void _206C_200B_206A_202D_206B_206B_206B_202B_202C_202E_202D_206B_206B_202C_200E_202E_206A_202E_200D_206E_206E_206D_206A_206C_206A_202E_206B_202E_202B_206E_202C_200C_206B_202B_206F_206C_206C_202E_202C_206D_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogDebug(P_1, P_2);
}
static void _202A_200E_202B_202E_200D_200F_200E_206F_206A_206C_202C_202B_200B_200C_200E_206A_206A_200E_202C_206F_202D_200B_202D_206A_200C_206D_200B_206D_206D_202B_206E_206B_206F_200E_202B_202D_200E_206C_202C_202D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3)
{
P_0.LogError(P_1, P_2, P_3);
}
static bool _206E_206A_200C_200E_202E_202D_202C_200B_206E_206A_200F_206E_202C_206F_200D_200C_200D_200D_202E_206C_206D_202E_206F_206E_200D_202E_206A_206A_200E_206B_200C_202C_202B_200F_206D_200C_202E_206F_202A_206C_202E(string P_0)
{
return string.IsNullOrEmpty(P_0);
}
static int _202A_206F_200D_202A_202C_206A_200C_202A_206C_206A_206F_200E_206D_206F_206C_200D_200B_202E_206F_202E_200E_206B_200C_206D_202A_202E_206E_200C_206E_206A_202B_206F_200F_206C_206A_200B_206B_202B_202E_200D_202E(string P_0, string P_1, StringComparison P_2)
{
return P_0.IndexOf(P_1, P_2);
}
static string _200F_200B_206F_202B_202D_206F_200D_202C_206F_206C_206E_202E_202D_206E_206B_206C_202E_202D_206E_202E_206D_200B_202D_200D_202A_202D_206C_200C_206B_206B_200C_200B_200F_200D_200C_206B_206B_206A_206B_200C_202E(string P_0, int P_1, int P_2)
{
return P_0.Substring(P_1, P_2);
}
static string _206A_206C_202B_202E_200D_200B_206E_206D_206D_206E_200B_202A_200F_202C_202B_200F_202D_200F_200D_202A_206E_200B_200E_202A_202E_206C_206E_202C_200D_200F_200E_206F_200E_202A_206E_206B_206F_200B_200C_206D_202E(string P_0, string P_1, string P_2)
{
return P_0 + P_1 + P_2;
}
static void _206D_206B_200C_200C_200E_200F_202D_206E_200E_206C_206A_200C_200E_202E_202A_200B_206C_206B_206F_200D_202A_202B_206A_200C_202C_202D_200B_202A_202E_206F_206D_202A_206C_200D_200F_200B_200E_206F_206E_206B_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3)
{
P_0.LogTrace(P_1, P_2, P_3);
}
static LayerCommon.Layer[] _206B_202A_206C_200B_200F_202D_200C_202D_206C_206E_206C_206E_202E_200B_202D_202C_206F_206F_202B_200E_202A_200C_202E_206E_206D_206E_202B_206E_200F_206F_200F_200E_206F_202D_202C_206E_200D_200F_202A_200E_202E(LgbFile P_0)
{
return P_0.Layers;
}
}

View file

@ -0,0 +1,142 @@
using System;
using System.Collections.Generic;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Text;
namespace SmartNav.Data;
internal sealed record PopRangeEntry(ushort TerritoryId, uint InstanceId, Vector3 Position)
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _200C_202C_200D_206B_206B_200C_202A_202A_200D_206C_200B_206D_200C_202E_200D_200E_202C_206D_200D_202E_200B_202D_202E_202B_202E_200D_200F_206D_202E_202C_202C_202E_206A_200F_202E_206E_206D_202A_200E_202E_202E(typeof(PopRangeEntry).TypeHandle);
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _202B_200C_206E_200B_206F_200E_206F_206B_202C_202E_206E_206E_202C_200C_202B_206D_206A_206C_206B_202B_206B_200F_202A_206F_206A_202B_202B_200F_200B_206B_202D_206F_206D_206B_200B_202B_200D_200C_200B_200E_202E();
_202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-808505002));
_202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1886515922));
int num = ((!PrintMembers(stringBuilder)) ? 514533744 : 514533747);
while (true)
{
int num2 = num;
int num3 = 514533746;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
_200E_200E_206E_206B_206B_200C_206C_206D_206A_206B_206D_200C_206A_202E_206A_202D_200C_200B_202C_206A_202B_202E_206E_206A_202B_202C_200E_200E_206B_206B_200F_206C_200E_202E_206B_206D_200C_206A_202D_206E_202E(stringBuilder, '}');
return _202A_202C_200F_206D_206E_202C_206A_206F_206A_206D_206C_206C_200E_206E_200B_202D_202E_202D_206E_206C_206C_202C_200C_200D_206F_206E_206C_202A_200B_206B_206C_206E_202B_206C_200E_206E_206D_202D_200B_206E_202E((object)stringBuilder);
case 1:
_200E_200E_206E_206B_206B_200C_206C_206D_206A_206B_206D_200C_206A_202E_206A_202D_200C_200B_202C_206A_202B_202E_206E_206A_202B_202C_200E_200E_206B_206B_200F_206C_200E_202E_206B_206D_200C_206A_202D_206E_202E(stringBuilder, ' ');
num = 514533744;
break;
case 0:
num = 514533747;
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_200E_206A_202C_200C_200E_202A_206E_206B_200B_206E_202C_200F_202B_200F_202D_206E_206B_200D_202D_200F_202B_206F_202A_202B_206E_202C_202C_200C_200E_200B_206D_200F_200C_200D_202B_200E_202E_202B_206E_206F_202E();
_202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(167583641));
_202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(builder, TerritoryId.ToString());
_202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(299588646));
_202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(builder, InstanceId.ToString());
_202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-14976604));
_202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(builder, Position.ToString());
return true;
}
[CompilerGenerated]
public bool Equals(PopRangeEntry? other)
{
int num = (((object)this == other) ? (-1947000687) : (-1947000681));
while (true)
{
int num2 = num;
int num3 = -1947000682;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
num = -1947000681;
break;
case 5:
return EqualityComparer<Vector3>.Default.Equals(Position, other.Position);
case 1:
num = (((object)other == null) ? (-1947000686) : (-1947000688));
break;
case 3:
num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? (-1947000686) : (-1947000682));
break;
case 7:
return true;
case 4:
return false;
case 6:
num = ((!_200E_206D_206F_200E_206B_206B_206B_206B_206E_202B_200F_206F_206F_206E_202A_200C_202C_206F_200D_206F_202E_206D_206F_206E_200E_202A_200F_202D_202D_200B_206F_202D_202D_206E_200E_200E_206C_206A_202C_202E(EqualityContract, other.EqualityContract)) ? (-1947000686) : (-1947000683));
break;
case 0:
num = ((!EqualityComparer<uint>.Default.Equals(InstanceId, other.InstanceId)) ? (-1947000686) : (-1947000685));
break;
}
}
}
bool IEquatable<PopRangeEntry>.Equals(PopRangeEntry? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type _200C_202C_200D_206B_206B_200C_202A_202A_200D_206C_200B_206D_200C_202E_200D_200E_202C_206D_200D_202E_200B_202D_202E_202B_202E_200D_200F_206D_202E_202C_202C_202E_206A_200F_202E_206E_206D_202A_200E_202E_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder _202B_200C_206E_200B_206F_200E_206F_206B_202C_202E_206E_206E_202C_200C_202B_206D_206A_206C_206B_202B_206B_200F_202A_206F_206A_202B_202B_200F_200B_206B_202D_206F_206D_206B_200B_202B_200D_200C_200B_200E_202E()
{
return new StringBuilder();
}
static StringBuilder _202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _200E_200E_206E_206B_206B_200C_206C_206D_206A_206B_206D_200C_206A_202E_206A_202D_200C_200B_202C_206A_202B_202E_206E_206A_202B_202C_200E_200E_206B_206B_200F_206C_200E_202E_206B_206D_200C_206A_202D_206E_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _202A_202C_200F_206D_206E_202C_206A_206F_206A_206D_206C_206C_200E_206E_200B_202D_202E_202D_206E_206C_206C_202C_200C_200D_206F_206E_206C_202A_200B_206B_206C_206E_202B_206C_200E_206E_206D_202D_200B_206E_202E(object P_0)
{
return P_0.ToString();
}
static void _200E_206A_202C_200C_200E_202A_206E_206B_200B_206E_202C_200F_202B_200F_202D_206E_206B_200D_202D_200F_202B_206F_202A_202B_206E_202C_202C_200C_200E_200B_206D_200F_200C_200D_202B_200E_202E_202B_206E_206F_202E()
{
RuntimeHelpers.EnsureSufficientExecutionStack();
}
static bool _200E_206D_206F_200E_206B_206B_206B_206B_206E_202B_200F_206F_206F_206E_202A_200C_202C_206F_200D_206F_202E_206D_206F_206E_200E_202A_200F_202D_202D_200B_206F_202D_202D_206E_200E_200E_206C_206A_202C_202E(Type P_0, Type P_1)
{
return P_0 == P_1;
}
}

View file

@ -0,0 +1,149 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.CompilerServices;
using System.Text;
namespace SmartNav.Data;
public sealed record SmartNavDataOptions(DirectoryInfo? UserOverrideDirectory = null, DirectoryInfo? DevSourceDirectory = null, string? GameVersion = null)
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _206B_202A_200C_202A_200E_200C_206E_200E_200F_206D_206A_206B_202C_202B_202C_200E_200B_206B_206C_202D_206A_206D_202C_200B_200C_202B_206A_202E_206E_206F_202C_200E_206E_206F_206F_200C_200E_206F_202A_202A_202E(typeof(SmartNavDataOptions).TypeHandle);
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _200E_206C_200D_200F_206B_202A_200C_206C_202E_202A_206A_200E_200C_206D_202B_200B_206C_202A_202E_206F_200F_206F_202E_202E_206A_202E_202E_202A_206F_202B_202A_200F_200C_206D_200D_200D_206F_202D_202D_202B_202E();
_206A_202A_200F_206B_206A_200B_202C_206F_200C_200D_206E_200B_202C_200D_206D_202B_200F_200D_206D_200C_206D_200B_202E_206E_206E_206E_200F_206B_200B_206F_206A_200E_206D_206B_206C_200B_206B_206F_200D_202D_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1494308078));
_206A_202A_200F_206B_206A_200B_202C_206F_200C_200D_206E_200B_202C_200D_206D_202B_200F_200D_206D_200C_206D_200B_202E_206E_206E_206E_200F_206B_200B_206F_206A_200E_206D_206B_206C_200B_206B_206F_200D_202D_202E(stringBuilder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1120247710));
int num = ((!PrintMembers(stringBuilder)) ? (-1057108320) : (-1057108319));
while (true)
{
int num2 = num;
int num3 = -1057108320;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
num = -1057108319;
break;
case 0:
_202A_200C_200D_206D_202A_200F_200F_200D_200D_206D_206A_202D_200B_200C_200D_206C_202E_200F_200F_202C_200F_206A_206D_200F_202E_206B_202B_200E_206E_202A_202C_206E_202B_200B_206F_202E_206A_200E_206B_202A_202E(stringBuilder, '}');
return _200C_206C_206C_202E_200D_206B_202B_202B_202B_200B_202C_200D_202A_202A_200F_206E_206E_200F_202E_202C_202D_202C_202E_206B_202E_202C_200C_200E_200E_206F_200C_206D_206F_202E_200F_202C_206E_206E_200C_200F_202E((object?)stringBuilder);
case 1:
_202A_200C_200D_206D_202A_200F_200F_200D_200D_206D_206A_202D_200B_200C_200D_206C_202E_200F_200F_202C_200F_206A_206D_200F_202E_206B_202B_200E_206E_202A_202C_206E_202B_200B_206F_202E_206A_200E_206B_202A_202E(stringBuilder, ' ');
num = -1057108320;
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_206F_200F_206D_206B_200B_200F_206A_202D_202E_200C_206A_202C_202A_200E_200B_202B_200C_202B_206E_206F_202E_206F_206F_202A_206B_206A_206A_206B_200C_206E_206C_200C_202D_200C_202C_206F_200C_202A_206F_200C_202E();
_206A_202A_200F_206B_206A_200B_202C_206F_200C_200D_206E_200B_202C_200D_206D_202B_200F_200D_206D_200C_206D_200B_202E_206E_206E_206E_200F_206B_200B_206F_206A_200E_206D_206B_206C_200B_206B_206F_200D_202D_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-148533820));
_206E_206F_206E_202A_202E_202A_200F_206D_206C_206B_206F_206F_206A_200B_206B_202B_200D_206B_202E_206A_200F_200F_202C_202C_206C_200E_206A_200B_202C_202A_200E_206B_202A_206D_200C_206E_200C_206E_202B_202D_202E(builder, (object?)UserOverrideDirectory);
_206A_202A_200F_206B_206A_200B_202C_206F_200C_200D_206E_200B_202C_200D_206D_202B_200F_200D_206D_200C_206D_200B_202E_206E_206E_206E_200F_206B_200B_206F_206A_200E_206D_206B_206C_200B_206B_206F_200D_202D_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1567612591));
_206E_206F_206E_202A_202E_202A_200F_206D_206C_206B_206F_206F_206A_200B_206B_202B_200D_206B_202E_206A_200F_200F_202C_202C_206C_200E_206A_200B_202C_202A_200E_206B_202A_206D_200C_206E_200C_206E_202B_202D_202E(builder, (object?)DevSourceDirectory);
_206A_202A_200F_206B_206A_200B_202C_206F_200C_200D_206E_200B_202C_200D_206D_202B_200F_200D_206D_200C_206D_200B_202E_206E_206E_206E_200F_206B_200B_206F_206A_200E_206D_206B_206C_200B_206B_206F_200D_202D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-204927746));
_206E_206F_206E_202A_202E_202A_200F_206D_206C_206B_206F_206F_206A_200B_206B_202B_200D_206B_202E_206A_200F_200F_202C_202C_206C_200E_206A_200B_202C_202A_200E_206B_202A_206D_200C_206E_200C_206E_202B_202D_202E(builder, (object?)GameVersion);
return true;
}
[CompilerGenerated]
public bool Equals(SmartNavDataOptions? other)
{
int num = (((object)this == other) ? (-1367918412) : (-1367918411));
while (true)
{
int num2 = num;
int num3 = -1367918409;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
num = -1367918411;
break;
case 6:
return false;
case 3:
return true;
case 4:
num = ((!_202B_200E_200F_206E_200B_206D_200D_206C_202B_206B_202D_200F_200C_206F_200F_200C_202D_206B_202D_200B_202D_206F_200D_202B_206C_202E_200B_202A_206A_206D_202D_206B_206E_202D_206E_206B_206A_202C_200C_202A_202E(EqualityContract, other.EqualityContract)) ? (-1367918415) : (-1367918410));
break;
case 2:
num = (((object)other == null) ? (-1367918415) : (-1367918413));
break;
case 1:
num = ((!EqualityComparer<DirectoryInfo>.Default.Equals(UserOverrideDirectory, other.UserOverrideDirectory)) ? (-1367918415) : (-1367918414));
break;
case 7:
return EqualityComparer<string>.Default.Equals(GameVersion, other.GameVersion);
case 5:
num = ((!EqualityComparer<DirectoryInfo>.Default.Equals(DevSourceDirectory, other.DevSourceDirectory)) ? (-1367918415) : (-1367918416));
break;
}
}
}
bool IEquatable<SmartNavDataOptions>.Equals(SmartNavDataOptions? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type? _206B_202A_200C_202A_200E_200C_206E_200E_200F_206D_206A_206B_202C_202B_202C_200E_200B_206B_206C_202D_206A_206D_202C_200B_200C_202B_206A_202E_206E_206F_202C_200E_206E_206F_206F_200C_200E_206F_202A_202A_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder? _200E_206C_200D_200F_206B_202A_200C_206C_202E_202A_206A_200E_200C_206D_202B_200B_206C_202A_202E_206F_200F_206F_202E_202E_206A_202E_202E_202A_206F_202B_202A_200F_200C_206D_200D_200D_206F_202D_202D_202B_202E()
{
return new StringBuilder();
}
static StringBuilder? _206A_202A_200F_206B_206A_200B_202C_206F_200C_200D_206E_200B_202C_200D_206D_202B_200F_200D_206D_200C_206D_200B_202E_206E_206E_206E_200F_206B_200B_206F_206A_200E_206D_206B_206C_200B_206B_206F_200D_202D_202E(StringBuilder? P_0, string? P_1)
{
return P_0.Append(P_1);
}
static StringBuilder? _202A_200C_200D_206D_202A_200F_200F_200D_200D_206D_206A_202D_200B_200C_200D_206C_202E_200F_200F_202C_200F_206A_206D_200F_202E_206B_202B_200E_206E_202A_202C_206E_202B_200B_206F_202E_206A_200E_206B_202A_202E(StringBuilder? P_0, char P_1)
{
return P_0.Append(P_1);
}
static string? _200C_206C_206C_202E_200D_206B_202B_202B_202B_200B_202C_200D_202A_202A_200F_206E_206E_200F_202E_202C_202D_202C_202E_206B_202E_202C_200C_200E_200E_206F_200C_206D_206F_202E_200F_202C_206E_206E_200C_200F_202E(object? P_0)
{
return P_0.ToString();
}
static void _206F_200F_206D_206B_200B_200F_206A_202D_202E_200C_206A_202C_202A_200E_200B_202B_200C_202B_206E_206F_202E_206F_206F_202A_206B_206A_206A_206B_200C_206E_206C_200C_202D_200C_202C_206F_200C_202A_206F_200C_202E()
{
RuntimeHelpers.EnsureSufficientExecutionStack();
}
static StringBuilder? _206E_206F_206E_202A_202E_202A_200F_206D_206C_206B_206F_206F_206A_200B_206B_202B_200D_206B_202E_206A_200F_200F_202C_202C_206C_200E_206A_200B_202C_202A_200E_206B_202A_206D_200C_206E_200C_206E_202B_202D_202E(StringBuilder? P_0, object? P_1)
{
return P_0.Append(P_1);
}
static bool _202B_200E_200F_206E_200B_206D_200D_206C_202B_206B_202D_200F_200C_206F_200F_200C_202D_206B_202D_200B_202D_206F_200D_202B_206C_202E_200B_202A_206A_206D_202D_206B_206E_202D_206E_206B_206A_202C_200C_202A_202E(Type? P_0, Type? P_1)
{
return P_0 == P_1;
}
}

View file

@ -0,0 +1,434 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Text;
using Dalamud.Plugin.Services;
using Lumina.Excel;
using Lumina.Excel.Sheets;
using Microsoft.Extensions.Logging;
using SmartNav.Model.Navigation;
namespace SmartNav.Data;
public sealed class TaxiStandDataService
{
public sealed record TaxiStandInfo(uint StandRowId, string PlaceName, ushort TerritoryId, Vector3 Position, uint NpcDataId, TaxiRoute[] Routes)
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _206B_202A_202D_206F_202E_206A_206E_200E_200C_200D_200D_200E_206F_202B_202C_202C_206B_202C_206F_200D_202E_200D_206E_206E_200B_202B_206B_206F_200D_206E_200E_200B_200B_202D_200F_206F_206D_202A_200C_200D_202E(typeof(TaxiStandInfo).TypeHandle);
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _206F_202D_206A_206E_200B_202B_200E_202A_206A_202B_202C_206A_202C_206F_202A_206E_206B_200D_200D_202B_202B_206A_202D_202B_206E_206E_202E_202C_202D_206E_202B_206E_202B_200E_200B_202A_200C_206C_206E_200F_202E();
_200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-457906279));
_200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-169322018));
int num = ((!PrintMembers(stringBuilder)) ? (-7237964) : (-7237961));
while (true)
{
int num2 = num;
int num3 = -7237962;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = -7237961;
break;
case 1:
_200F_206A_206F_200E_206F_200B_200E_202B_202B_200E_206D_200D_206F_200B_200D_206B_202C_206C_200F_206D_200D_206A_200B_202A_200D_202C_200D_200F_200F_202C_202A_202B_206B_202D_200B_206B_202C_200B_206A_206F_202E(stringBuilder, ' ');
num = -7237964;
break;
case 2:
_200F_206A_206F_200E_206F_200B_200E_202B_202B_200E_206D_200D_206F_200B_200D_206B_202C_206C_200F_206D_200D_206A_200B_202A_200D_202C_200D_200F_200F_202C_202A_202B_206B_202D_200B_206B_202C_200B_206A_206F_202E(stringBuilder, '}');
return _206D_200D_202A_206A_202A_206D_200E_206C_206A_202E_206C_202C_202E_202E_206B_202A_200B_206E_206A_202D_200D_206B_206F_206E_200E_202A_202B_206D_202C_200D_200B_206A_206F_206E_200F_202C_202C_202C_206F_202D_202E((object)stringBuilder);
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_200C_200F_206C_206F_202B_202D_206C_200C_202D_202D_202D_206C_206D_206A_206A_206C_200B_206D_206F_200D_202E_202D_206B_202A_206F_206F_200C_202E_206B_200B_200E_206F_206C_206A_200B_206E_200C_206C_202B_200F_202E();
_200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1862745090));
_200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, StandRowId.ToString());
_200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(1386669126));
_206C_202D_206E_200B_200D_200C_200E_200D_202C_200D_200E_206E_202A_206A_206B_200C_206B_200F_200E_200F_206F_202C_200C_206F_206A_200C_202A_202A_202A_202C_206B_200C_202D_200D_200E_200E_202D_206C_206A_206F_202E(builder, (object)PlaceName);
_200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(1283726812));
_200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, TerritoryId.ToString());
_200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(772692776));
_200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, Position.ToString());
_200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1004265433));
_200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, NpcDataId.ToString());
_200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1716966096));
_206C_202D_206E_200B_200D_200C_200E_200D_202C_200D_200E_206E_202A_206A_206B_200C_206B_200F_200E_200F_206F_202C_200C_206F_206A_200C_202A_202A_202A_202C_206B_200C_202D_200D_200E_200E_202D_206C_206A_206F_202E(builder, (object)Routes);
return true;
}
[CompilerGenerated]
public bool Equals(TaxiStandInfo? other)
{
int num = (((object)this == other) ? 1006480636 : 1006480639);
while (true)
{
int num2 = num;
int num3 = 1006480638;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 7:
num = 1006480639;
break;
case 10:
num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? 1006480634 : 1006480637);
break;
case 0:
num = ((!EqualityComparer<uint>.Default.Equals(NpcDataId, other.NpcDataId)) ? 1006480634 : 1006480631);
break;
case 3:
num = ((!EqualityComparer<Vector3>.Default.Equals(Position, other.Position)) ? 1006480634 : 1006480638);
break;
case 5:
num = ((!EqualityComparer<string>.Default.Equals(PlaceName, other.PlaceName)) ? 1006480634 : 1006480628);
break;
case 8:
num = ((!_202A_200F_206B_200D_206F_202D_206D_202A_206D_200E_202C_206A_206D_200B_202C_206E_206E_202C_200F_206D_206C_206F_200F_200B_202D_202E_202D_206F_202B_200F_200E_200C_202D_206E_200B_206F_206F_202E_202B_202B_202E(EqualityContract, other.EqualityContract)) ? 1006480634 : 1006480632);
break;
case 9:
return EqualityComparer<TaxiRoute[]>.Default.Equals(Routes, other.Routes);
case 4:
return false;
case 2:
return true;
case 6:
num = ((!EqualityComparer<uint>.Default.Equals(StandRowId, other.StandRowId)) ? 1006480634 : 1006480635);
break;
case 1:
num = (((object)other == null) ? 1006480634 : 1006480630);
break;
}
}
}
bool IEquatable<TaxiStandInfo>.Equals(TaxiStandInfo? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type _206B_202A_202D_206F_202E_206A_206E_200E_200C_200D_200D_200E_206F_202B_202C_202C_206B_202C_206F_200D_202E_200D_206E_206E_200B_202B_206B_206F_200D_206E_200E_200B_200B_202D_200F_206F_206D_202A_200C_200D_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder _206F_202D_206A_206E_200B_202B_200E_202A_206A_202B_202C_206A_202C_206F_202A_206E_206B_200D_200D_202B_202B_206A_202D_202B_206E_206E_202E_202C_202D_206E_202B_206E_202B_200E_200B_202A_200C_206C_206E_200F_202E()
{
return new StringBuilder();
}
static StringBuilder _200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _200F_206A_206F_200E_206F_200B_200E_202B_202B_200E_206D_200D_206F_200B_200D_206B_202C_206C_200F_206D_200D_206A_200B_202A_200D_202C_200D_200F_200F_202C_202A_202B_206B_202D_200B_206B_202C_200B_206A_206F_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _206D_200D_202A_206A_202A_206D_200E_206C_206A_202E_206C_202C_202E_202E_206B_202A_200B_206E_206A_202D_200D_206B_206F_206E_200E_202A_202B_206D_202C_200D_200B_206A_206F_206E_200F_202C_202C_202C_206F_202D_202E(object P_0)
{
return P_0.ToString();
}
static void _200C_200F_206C_206F_202B_202D_206C_200C_202D_202D_202D_206C_206D_206A_206A_206C_200B_206D_206F_200D_202E_202D_206B_202A_206F_206F_200C_202E_206B_200B_200E_206F_206C_206A_200B_206E_200C_206C_202B_200F_202E()
{
RuntimeHelpers.EnsureSufficientExecutionStack();
}
static StringBuilder _206C_202D_206E_200B_200D_200C_200E_200D_202C_200D_200E_206E_202A_206A_206B_200C_206B_200F_200E_200F_206F_202C_200C_206F_206A_200C_202A_202A_202A_202C_206B_200C_202D_200D_200E_200E_202D_206C_206A_206F_202E(StringBuilder P_0, object P_1)
{
return P_0.Append(P_1);
}
static bool _202A_200F_206B_200D_206F_202D_206D_202A_206D_200E_202C_206A_206D_200B_202C_206E_206E_202C_200F_206D_206C_206F_200F_200B_202D_202E_202D_206F_202B_200F_200E_200C_202D_206E_200B_206F_206F_202E_202B_202B_202E(Type P_0, Type P_1)
{
return P_0 == P_1;
}
}
public sealed record TaxiRoute(uint DestStandRowId, int Fare, int TimeRequiredSeconds)
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _202E_206D_200F_202E_206E_200B_202C_200C_202C_200F_200C_206C_206A_206C_202E_200C_200B_206E_206B_200B_202A_206B_200C_206A_200E_202D_200F_200F_202B_206F_206A_206B_206B_202A_206E_206A_206D_200B_200C_202D_202E(typeof(TaxiRoute).TypeHandle);
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _206D_206A_206B_202D_200E_206E_200E_200B_200E_206C_206B_200B_206E_202B_200D_206E_206A_206F_202E_206B_206E_202B_206B_206A_206F_200B_200B_202B_206E_206C_200E_202C_200B_206F_206D_200B_206C_202E_202C_202A_202E();
_200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(76454572));
_200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-979564187));
int num = ((!PrintMembers(stringBuilder)) ? 956238306 : 956238307);
while (true)
{
int num2 = num;
int num3 = 956238306;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
_200D_206E_202C_200F_200C_200E_202A_202E_202A_206C_206E_202E_206B_200B_206A_200B_206F_206E_202C_206C_200E_206E_206A_206B_202B_206A_206A_206B_206D_202C_206F_202A_202A_202B_200D_206A_206C_206F_202D_206D_202E(stringBuilder, '}');
return _200F_200F_202E_202B_202A_206A_206D_200E_202B_206C_200E_206C_202D_200C_202B_202D_202E_206C_206A_200F_200B_206C_206B_206F_202D_206E_206F_202D_202B_202E_200B_200C_206E_200E_202B_206C_200B_200C_202A_206D_202E((object)stringBuilder);
case 1:
_200D_206E_202C_200F_200C_200E_202A_202E_202A_206C_206E_202E_206B_200B_206A_200B_206F_206E_202C_206C_200E_206E_206A_206B_202B_206A_206A_206B_206D_202C_206F_202A_202A_202B_200D_206A_206C_206F_202D_206D_202E(stringBuilder, ' ');
num = 956238306;
break;
case 2:
num = 956238307;
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_200B_200F_206C_200C_206F_206B_206A_206B_200E_206E_206A_202B_206D_200E_202A_206E_202C_202D_200B_200F_200B_202E_202D_206A_206F_200F_202E_202E_202E_200E_200C_206D_202E_206E_200E_206E_206E_202E_202A_206B_202E();
_200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1487307401));
_200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(builder, DestStandRowId.ToString());
_200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-418458906));
_200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(builder, Fare.ToString());
_200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-568235594));
_200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(builder, TimeRequiredSeconds.ToString());
return true;
}
[CompilerGenerated]
public bool Equals(TaxiRoute? other)
{
int num = (((object)this == other) ? 1209102583 : 1209102576);
while (true)
{
int num2 = num;
int num3 = 1209102581;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 1:
return false;
case 5:
num = (((object)other == null) ? 1209102580 : 1209102582);
break;
case 0:
num = ((!EqualityComparer<int>.Default.Equals(Fare, other.Fare)) ? 1209102580 : 1209102578);
break;
case 6:
num = ((!EqualityComparer<uint>.Default.Equals(DestStandRowId, other.DestStandRowId)) ? 1209102580 : 1209102581);
break;
case 4:
num = 1209102576;
break;
case 7:
return EqualityComparer<int>.Default.Equals(TimeRequiredSeconds, other.TimeRequiredSeconds);
case 2:
return true;
case 3:
num = ((!_200D_202A_200B_206A_200B_200B_206F_206C_206B_206C_200F_200F_202D_206C_202A_206D_200D_200F_200E_200D_200C_206C_206A_200F_202D_206B_202D_200F_206B_206F_200C_202A_206C_202B_206A_202E_206C_206F_200E_202D_202E(EqualityContract, other.EqualityContract)) ? 1209102580 : 1209102579);
break;
}
}
}
bool IEquatable<TaxiRoute>.Equals(TaxiRoute? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type _202E_206D_200F_202E_206E_200B_202C_200C_202C_200F_200C_206C_206A_206C_202E_200C_200B_206E_206B_200B_202A_206B_200C_206A_200E_202D_200F_200F_202B_206F_206A_206B_206B_202A_206E_206A_206D_200B_200C_202D_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder _206D_206A_206B_202D_200E_206E_200E_200B_200E_206C_206B_200B_206E_202B_200D_206E_206A_206F_202E_206B_206E_202B_206B_206A_206F_200B_200B_202B_206E_206C_200E_202C_200B_206F_206D_200B_206C_202E_202C_202A_202E()
{
return new StringBuilder();
}
static StringBuilder _200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _200D_206E_202C_200F_200C_200E_202A_202E_202A_206C_206E_202E_206B_200B_206A_200B_206F_206E_202C_206C_200E_206E_206A_206B_202B_206A_206A_206B_206D_202C_206F_202A_202A_202B_200D_206A_206C_206F_202D_206D_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _200F_200F_202E_202B_202A_206A_206D_200E_202B_206C_200E_206C_202D_200C_202B_202D_202E_206C_206A_200F_200B_206C_206B_206F_202D_206E_206F_202D_202B_202E_200B_200C_206E_200E_202B_206C_200B_200C_202A_206D_202E(object P_0)
{
return P_0.ToString();
}
static void _200B_200F_206C_200C_206F_206B_206A_206B_200E_206E_206A_202B_206D_200E_202A_206E_202C_202D_200B_200F_200B_202E_202D_206A_206F_200F_202E_202E_202E_200E_200C_206D_202E_206E_200E_206E_206E_202E_202A_206B_202E()
{
RuntimeHelpers.EnsureSufficientExecutionStack();
}
static bool _200D_202A_200B_206A_200B_200B_206F_206C_206B_206C_200F_200F_202D_206C_202A_206D_200D_200F_200E_200D_200C_206C_206A_200F_202D_206B_202D_200F_206B_206F_200C_202A_206C_202B_206A_202E_206C_206F_200E_202D_202E(Type P_0, Type P_1)
{
return P_0 == P_1;
}
}
public IReadOnlyDictionary<uint, TaxiStandInfo> Stands { get; }
public IReadOnlyDictionary<uint, TaxiStandInfo> StandsByNpcDataId { get; }
public int TotalStands { get; }
public int TotalRoutes { get; }
[MethodImpl(MethodImplOptions.NoInlining)]
public TaxiStandDataService(IDataManager dataManager, SmartNavDataOptions dataOptions, ILogger<TaxiStandDataService> logger)
{
DirectoryInfo? devSourceDirectory = dataOptions.DevSourceDirectory;
IReadOnlyList<TaxiStandEntry> readOnlyList = _200B_202B_202B_206B_202E_202D_206E_202D_200F_206F_200C_206D_202E_200B_202A_200F_200B_206F_200D_200C_200D_206B_202E_206D_206B_202A_206E_202D_200C_206C_202A_202A_202A_206B_200C_200E_202E_200D_202C_202E_202E((devSourceDirectory != null) ? _200D_202C_206E_202D_202C_206B_206C_200E_200D_200C_200F_200B_206B_202C_202C_200F_200E_206D_200E_200D_206D_200D_200D_200B_206D_202A_202E_206D_200B_200B_200B_202A_206B_206D_206D_200F_200E_206B_200E_206C_202E((FileSystemInfo)devSourceDirectory) : null);
Dictionary<uint, TaxiStandEntry> dictionary = new Dictionary<uint, TaxiStandEntry>();
IEnumerator<TaxiStandEntry> enumerator = readOnlyList.GetEnumerator();
try
{
while (_202A_200C_206F_200D_206A_202A_206F_206B_200D_202E_202C_200F_206B_206C_200D_206F_202D_206D_206F_206A_202B_200C_202E_206B_200C_202D_200B_202C_200F_200D_200E_206F_200B_206C_206A_202D_206F_200E_200C_202C_202E((IEnumerator)enumerator))
{
TaxiStandEntry current = enumerator.Current;
dictionary[_206F_202E_200E_200E_206A_206C_202E_202A_206B_202D_206A_200F_206D_206C_206B_200B_206D_202A_200B_200D_206B_206A_206B_202B_200F_202C_200D_206D_202C_200C_206B_202C_206D_202E_206C_206F_206E_206B_200B_206B_202E(current)] = current;
}
}
finally
{
if (enumerator != null)
{
_202A_202D_206F_206B_206A_206E_202D_202A_206E_206C_200B_200E_200E_206A_202D_202E_206C_202A_206D_200F_200E_202A_200C_202D_202B_206E_206D_206C_200B_200D_206D_200F_200D_200C_200E_200B_200F_200B_206D_202B_202E((IDisposable)enumerator);
}
}
Dictionary<uint, TaxiStandInfo> dictionary2 = new Dictionary<uint, TaxiStandInfo>();
int num = 0;
ExcelSheet<ChocoboTaxiStand> excelSheet = dataManager.GetExcelSheet<ChocoboTaxiStand>();
foreach (var (num3, taxiStandEntry2) in dictionary)
{
if (!excelSheet.HasRow(num3))
{
continue;
}
ChocoboTaxiStand row = excelSheet.GetRow(num3);
string text = row.PlaceName.ToString();
if (_206C_200B_202E_206C_206D_206C_200C_206C_200D_206F_202E_202A_206F_202C_202B_202B_202A_200C_200B_202B_200F_200C_202B_202C_202D_206E_200B_206B_200C_206A_202C_206D_200E_206D_200C_206A_206D_206E_202C_202E(text))
{
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(12, 1);
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1902166363));
defaultInterpolatedStringHandler.AppendFormatted(num3, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-2030066311));
text = defaultInterpolatedStringHandler.ToStringAndClear();
}
List<TaxiRoute> list = new List<TaxiRoute>();
int num4 = 0;
while (num4 < 8)
{
ChocoboTaxi? valueNullable = row.TargetLocations[num4].ValueNullable;
if (valueNullable.HasValue && valueNullable.Value.TimeRequired != 0)
{
uint rowId = valueNullable.Value.Location.RowId;
if (rowId != 0)
{
list.Add(new TaxiRoute(rowId, valueNullable.Value.Fare, valueNullable.Value.TimeRequired * 60));
}
}
int num5 = num4;
int num6 = 1;
int num7 = num5;
num4 = (num7 | num6) + (num7 & num6);
}
num += list.Count;
dictionary2[num3] = new TaxiStandInfo(num3, text, _202B_206C_202A_206A_206B_206E_206E_200B_206A_200C_200D_202A_206B_206E_202C_202C_202C_206A_200E_202D_206F_206A_206F_202E_206E_200F_202B_200E_200F_200E_200D_202E_202A_200E_200E_206E_206D_206E_200D_202C_202E(taxiStandEntry2), _206E_206F_200F_206B_202E_202B_202D_206A_202C_200E_206B_200D_200F_200C_202D_200D_202A_202C_200E_200E_206F_200F_200B_200B_206E_206D_206F_202B_206C_200E_206A_202B_206C_200B_202A_200E_202B_202B_202E_202A_202E(taxiStandEntry2), _202A_206A_200F_206B_206A_202E_206B_202D_200E_200C_202A_200E_202E_200D_202E_200B_206B_206F_206A_202E_202B_202E_206E_202E_202A_200F_202C_200B_202D_206A_202E_202E_200F_202A_206C_200F_200E_206F_202C_202E(taxiStandEntry2), list.ToArray());
}
Stands = dictionary2;
StandsByNpcDataId = dictionary2.Values.ToDictionary((TaxiStandInfo s) => s.NpcDataId, (TaxiStandInfo s) => s);
TotalStands = dictionary2.Count;
TotalRoutes = num;
_206C_200C_202E_200C_200F_206B_200B_206C_200E_202D_200F_200E_206B_202D_202B_200F_200C_206B_202C_200B_206D_200B_202A_206D_202E_206A_206F_206F_200F_202C_200F_202D_202B_206A_200E_206E_200E_206A_202E_200C_202E((ILogger)logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(863793575), new object[2] { TotalStands, TotalRoutes });
}
static string _200D_202C_206E_202D_202C_206B_206C_200E_200D_200C_200F_200B_206B_202C_202C_200F_200E_206D_200E_200D_206D_200D_200D_200B_206D_202A_202E_206D_200B_200B_200B_202A_206B_206D_206D_200F_200E_206B_200E_206C_202E(FileSystemInfo P_0)
{
return P_0.FullName;
}
static IReadOnlyList<TaxiStandEntry> _200B_202B_202B_206B_202E_202D_206E_202D_200F_206F_200C_206D_202E_200B_202A_200F_200B_206F_200D_200C_200D_206B_202E_206D_206B_202A_206E_202D_200C_206C_202A_202A_202A_206B_200C_200E_202E_200D_202C_202E_202E(string P_0)
{
return AssemblyTaxiStandLoader.GetStands(P_0);
}
static uint _206F_202E_200E_200E_206A_206C_202E_202A_206B_202D_206A_200F_206D_206C_206B_200B_206D_202A_200B_200D_206B_206A_206B_202B_200F_202C_200D_206D_202C_200C_206B_202C_206D_202E_206C_206F_206E_206B_200B_206B_202E(TaxiStandEntry P_0)
{
return P_0.ChocoboTaxiStandId;
}
static bool _202A_200C_206F_200D_206A_202A_206F_206B_200D_202E_202C_200F_206B_206C_200D_206F_202D_206D_206F_206A_202B_200C_202E_206B_200C_202D_200B_202C_200F_200D_200E_206F_200B_206C_206A_202D_206F_200E_200C_202C_202E(IEnumerator P_0)
{
return P_0.MoveNext();
}
static void _202A_202D_206F_206B_206A_206E_202D_202A_206E_206C_200B_200E_200E_206A_202D_202E_206C_202A_206D_200F_200E_202A_200C_202D_202B_206E_206D_206C_200B_200D_206D_200F_200D_200C_200E_200B_200F_200B_206D_202B_202E(IDisposable P_0)
{
P_0.Dispose();
}
static bool _206C_200B_202E_206C_206D_206C_200C_206C_200D_206F_202E_202A_206F_202C_202B_202B_202A_200C_200B_202B_200F_200C_202B_202C_202D_206E_200B_206B_200C_206A_202C_206D_200E_206D_200C_206A_206D_206E_202C_202E(string P_0)
{
return string.IsNullOrEmpty(P_0);
}
static ushort _202B_206C_202A_206A_206B_206E_206E_200B_206A_200C_200D_202A_206B_206E_202C_202C_202C_206A_200E_202D_206F_206A_206F_202E_206E_200F_202B_200E_200F_200E_200D_202E_202A_200E_200E_206E_206D_206E_200D_202C_202E(TaxiStandEntry P_0)
{
return P_0.TerritoryId;
}
static Vector3 _206E_206F_200F_206B_202E_202B_202D_206A_202C_200E_206B_200D_200F_200C_202D_200D_202A_202C_200E_200E_206F_200F_200B_200B_206E_206D_206F_202B_206C_200E_206A_202B_206C_200B_202A_200E_202B_202B_202E_202A_202E(TaxiStandEntry P_0)
{
return P_0.Location;
}
static uint _202A_206A_200F_206B_206A_202E_206B_202D_200E_200C_202A_200E_202E_200D_202E_200B_206B_206F_206A_202E_202B_202E_206E_202E_202A_200F_202C_200B_202D_206A_202E_202E_200F_202A_206C_200F_200E_206F_202C_202E(TaxiStandEntry P_0)
{
return P_0.Id;
}
static void _206C_200C_202E_200C_200F_206B_200B_206C_200E_202D_200F_200E_206B_202D_202B_200F_200C_206B_202C_200B_206D_200B_202A_206D_202E_206A_206F_206F_200F_202C_200F_202D_202B_206A_200E_206E_200E_206A_202E_200C_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogDebug(P_1, P_2);
}
}

View file

@ -0,0 +1,686 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Text;
using System.Text.Json;
using Dalamud.Plugin.Services;
using Lumina.Excel;
using Lumina.Excel.Sheets;
using Microsoft.Extensions.Logging;
using SmartNav.Model.Navigation;
namespace SmartNav.Data;
public sealed class TeleportTicketService
{
public sealed record ScannedTicket(uint ItemId, string Name, uint ItemActionRowId, ushort[] ItemActionData)
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _202C_200D_200C_206E_200F_200E_206D_206F_202D_200D_202C_202A_206A_206F_200D_202E_200C_202A_202B_200E_206E_206F_202A_202E_202A_202C_202C_206E_206D_206D_200F_200D_202B_206C_202A_206D_202A_202C_206F_202C_202E(typeof(ScannedTicket).TypeHandle);
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _206F_200D_202D_202D_200D_202C_206B_202E_200B_202B_206F_206D_200F_206F_200D_202C_206B_206E_206A_202A_206F_202B_206C_202B_206C_206D_202C_206A_200B_202C_202C_202A_206F_206B_202C_206A_202B_206E_206D_206E_202E();
_200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1489802368));
_200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-169322018));
int num = ((!PrintMembers(stringBuilder)) ? (-550622530) : (-550622529));
while (true)
{
int num2 = num;
int num3 = -550622530;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
num = -550622529;
break;
case 0:
_200C_200F_200F_200C_206D_200C_200B_200D_206C_200D_200D_202D_202D_206C_200D_202B_202B_200B_202C_200E_202D_202A_202B_202D_206E_200C_200E_202E_206A_200D_200E_206C_206F_206D_206E_202E_200F_200B_206C_206C_202E(stringBuilder, '}');
return _202B_202E_202A_202B_200F_200F_200C_202B_202C_202B_202A_200C_206B_200C_202C_206E_206A_200B_206D_206D_206E_206D_200F_200F_200E_202C_206A_200D_200E_202A_202B_206A_202B_206A_200D_206F_206C_206B_206E_206D_202E((object)stringBuilder);
case 1:
_200C_200F_200F_200C_206D_200C_200B_200D_206C_200D_200D_202D_202D_206C_200D_202B_202B_200B_202C_200E_202D_202A_202B_202D_206E_200C_200E_202E_206A_200D_200E_206C_206F_206D_206E_202E_200F_200B_206C_206C_202E(stringBuilder, ' ');
num = -550622530;
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_200E_202B_206A_206B_202E_200D_206D_206A_202C_200E_206F_202C_206D_202E_206F_202C_206D_202E_206E_206F_202A_206D_206A_206C_202D_202E_200D_206D_202B_202C_202E_206D_200B_206E_200C_206C_202E_200C_202D_200D_202E();
_200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(825996996));
_200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(builder, ItemId.ToString());
_200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-710038733));
_206E_202A_202C_206A_202E_202A_206C_200E_202E_200F_202D_206E_200F_200B_206B_206A_200D_200B_200B_200E_206C_202A_206F_206E_206F_206C_202E_202E_202A_200D_206F_206C_200C_202B_202E_200E_202E_202E_206D_206B_202E(builder, (object)Name);
_200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-297009185));
_200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(builder, ItemActionRowId.ToString());
_200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(539792921));
_206E_202A_202C_206A_202E_202A_206C_200E_202E_200F_202D_206E_200F_200B_206B_206A_200D_200B_200B_200E_206C_202A_206F_206E_206F_206C_202E_202E_202A_200D_206F_206C_200C_202B_202E_200E_202E_202E_206D_206B_202E(builder, (object)ItemActionData);
return true;
}
[CompilerGenerated]
public bool Equals(ScannedTicket? other)
{
int num = (((object)this == other) ? 1004047218 : 1004047227);
while (true)
{
int num2 = num;
int num3 = 1004047226;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 5:
num = ((!EqualityComparer<uint>.Default.Equals(ItemActionRowId, other.ItemActionRowId)) ? 1004047225 : 1004047230);
break;
case 3:
return false;
case 7:
num = 1004047227;
break;
case 8:
return true;
case 0:
num = ((!_202D_200D_202B_206C_202D_206C_206D_202B_202C_206B_206C_202E_206B_200E_206C_202C_202D_202B_206D_202A_200D_200B_202C_200D_200B_200D_206A_206A_202C_206E_202C_200E_206A_206B_200D_202B_206F_202A_200C_206F_202E(EqualityContract, other.EqualityContract)) ? 1004047225 : 1004047228);
break;
case 4:
return EqualityComparer<ushort[]>.Default.Equals(ItemActionData, other.ItemActionData);
case 2:
num = ((!EqualityComparer<string>.Default.Equals(Name, other.Name)) ? 1004047225 : 1004047231);
break;
case 1:
num = (((object)other == null) ? 1004047225 : 1004047226);
break;
case 6:
num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? 1004047225 : 1004047224);
break;
}
}
}
bool IEquatable<ScannedTicket>.Equals(ScannedTicket? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type _202C_200D_200C_206E_200F_200E_206D_206F_202D_200D_202C_202A_206A_206F_200D_202E_200C_202A_202B_200E_206E_206F_202A_202E_202A_202C_202C_206E_206D_206D_200F_200D_202B_206C_202A_206D_202A_202C_206F_202C_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder _206F_200D_202D_202D_200D_202C_206B_202E_200B_202B_206F_206D_200F_206F_200D_202C_206B_206E_206A_202A_206F_202B_206C_202B_206C_206D_202C_206A_200B_202C_202C_202A_206F_206B_202C_206A_202B_206E_206D_206E_202E()
{
return new StringBuilder();
}
static StringBuilder _200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _200C_200F_200F_200C_206D_200C_200B_200D_206C_200D_200D_202D_202D_206C_200D_202B_202B_200B_202C_200E_202D_202A_202B_202D_206E_200C_200E_202E_206A_200D_200E_206C_206F_206D_206E_202E_200F_200B_206C_206C_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _202B_202E_202A_202B_200F_200F_200C_202B_202C_202B_202A_200C_206B_200C_202C_206E_206A_200B_206D_206D_206E_206D_200F_200F_200E_202C_206A_200D_200E_202A_202B_206A_202B_206A_200D_206F_206C_206B_206E_206D_202E(object P_0)
{
return P_0.ToString();
}
static void _200E_202B_206A_206B_202E_200D_206D_206A_202C_200E_206F_202C_206D_202E_206F_202C_206D_202E_206E_206F_202A_206D_206A_206C_202D_202E_200D_206D_202B_202C_202E_206D_200B_206E_200C_206C_202E_200C_202D_200D_202E()
{
RuntimeHelpers.EnsureSufficientExecutionStack();
}
static StringBuilder _206E_202A_202C_206A_202E_202A_206C_200E_202E_200F_202D_206E_200F_200B_206B_206A_200D_200B_200B_200E_206C_202A_206F_206E_206F_206C_202E_202E_202A_200D_206F_206C_200C_202B_202E_200E_202E_202E_206D_206B_202E(StringBuilder P_0, object P_1)
{
return P_0.Append(P_1);
}
static bool _202D_200D_202B_206C_202D_206C_206D_202B_202C_206B_206C_202E_206B_200E_206C_202C_202D_202B_206D_202A_200D_200B_202C_200D_200B_200D_206A_206A_202C_206E_202C_200E_206A_206B_200D_202B_206F_202A_200C_206F_202E(Type P_0, Type P_1)
{
return P_0 == P_1;
}
}
public sealed record TeleportTicket(uint ItemId, string Name, ushort TerritoryId, Vector3 Position, byte RequiredGrandCompany = 0, uint RequiredQuestId = 0u)
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _206D_206F_206B_200F_206E_200E_206D_200D_202D_202C_200C_202A_202E_206D_200C_206B_206C_202B_202D_200D_200F_200C_202A_202A_200C_200C_200D_200C_202C_202C_202C_202A_206C_206D_200D_202D_200B_202D_202A_202E(typeof(TeleportTicket).TypeHandle);
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _202A_202E_206D_206B_202C_200E_202D_202D_206D_202B_206B_206D_202B_206E_200F_202B_206E_206B_206F_206C_200C_200F_202B_206F_200D_206E_206A_202A_200C_202A_206E_206F_202E_200C_206B_200C_202D_202A_202E_202C_202E();
_202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-657525992));
_202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(stringBuilder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1120247710));
int num = ((!PrintMembers(stringBuilder)) ? 1884459870 : 1884459871);
while (true)
{
int num2 = num;
int num3 = 1884459870;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
num = 1884459871;
break;
case 1:
_202B_206C_206B_202D_206E_200C_206E_200C_200C_200E_202A_206C_206E_200C_202D_206D_206B_206A_202E_202C_202E_202D_200E_206C_200F_202D_202B_206E_206B_206E_200F_200B_206C_202D_200E_206B_206A_202A_206F_200D_202E(stringBuilder, ' ');
num = 1884459870;
break;
case 0:
_202B_206C_206B_202D_206E_200C_206E_200C_200C_200E_202A_206C_206E_200C_202D_206D_206B_206A_202E_202C_202E_202D_200E_206C_200F_202D_202B_206E_206B_206E_200F_200B_206C_202D_200E_206B_206A_202A_206F_200D_202E(stringBuilder, '}');
return _202C_200F_206F_200B_206D_202D_202E_200B_202D_202C_200B_202A_206A_206A_202C_200D_206A_206E_206A_202D_202E_206E_206E_200C_200B_200B_202B_206A_206C_202B_200F_206F_200F_206F_202E_206B_200C_206F_200F_206B_202E((object)stringBuilder);
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_200B_202C_202C_200C_200C_206E_202E_202C_202E_206B_200B_200D_202E_206C_202E_200B_200E_202C_206A_200E_206E_206A_206D_200B_202C_200C_206C_206D_206A_202B_202B_200B_200C_200D_202A_206E_200D_202B_206C_200C_202E();
_202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-625074920));
_202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, ItemId.ToString());
_202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(844509483));
_200E_206A_202E_200F_202C_200D_202A_202D_206D_206C_202E_200B_200E_200E_206C_202D_202B_206B_206E_202A_202A_202D_200D_202C_200B_206D_202B_206F_206C_200B_200E_206C_206A_206F_202E_202A_206F_202D_200E_206C_202E(builder, (object)Name);
_202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1370916953));
_202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, TerritoryId.ToString());
_202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1811452076));
_202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, Position.ToString());
_202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-772128166));
_202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, RequiredGrandCompany.ToString());
_202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1957211680));
_202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, RequiredQuestId.ToString());
return true;
}
[CompilerGenerated]
public bool Equals(TeleportTicket? other)
{
int num = (((object)this == other) ? 1321105694 : 1321105681);
while (true)
{
int num2 = num;
int num3 = 1321105684;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 3:
num = ((!EqualityComparer<byte>.Default.Equals(RequiredGrandCompany, other.RequiredGrandCompany)) ? 1321105686 : 1321105685);
break;
case 5:
num = (((object)other == null) ? 1321105686 : 1321105693);
break;
case 8:
num = ((!EqualityComparer<Vector3>.Default.Equals(Position, other.Position)) ? 1321105686 : 1321105687);
break;
case 9:
num = ((!_200E_202B_200F_206F_200C_200D_200E_200F_206A_200D_202D_206A_206A_202E_202E_202D_206A_202A_200B_200F_200F_202A_200B_206A_206F_206C_200F_200C_206A_206B_202D_200F_200C_200C_206F_200B_206B_202D_202B_206C_202E(EqualityContract, other.EqualityContract)) ? 1321105686 : 1321105680);
break;
case 7:
num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? 1321105686 : 1321105692);
break;
case 1:
return EqualityComparer<uint>.Default.Equals(RequiredQuestId, other.RequiredQuestId);
case 6:
num = ((!EqualityComparer<string>.Default.Equals(Name, other.Name)) ? 1321105686 : 1321105683);
break;
case 0:
num = 1321105681;
break;
case 10:
return true;
case 2:
return false;
case 4:
num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? 1321105686 : 1321105682);
break;
}
}
}
bool IEquatable<TeleportTicket>.Equals(TeleportTicket? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type _206D_206F_206B_200F_206E_200E_206D_200D_202D_202C_200C_202A_202E_206D_200C_206B_206C_202B_202D_200D_200F_200C_202A_202A_200C_200C_200D_200C_202C_202C_202C_202A_206C_206D_200D_202D_200B_202D_202A_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder _202A_202E_206D_206B_202C_200E_202D_202D_206D_202B_206B_206D_202B_206E_200F_202B_206E_206B_206F_206C_200C_200F_202B_206F_200D_206E_206A_202A_200C_202A_206E_206F_202E_200C_206B_200C_202D_202A_202E_202C_202E()
{
return new StringBuilder();
}
static StringBuilder _202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _202B_206C_206B_202D_206E_200C_206E_200C_200C_200E_202A_206C_206E_200C_202D_206D_206B_206A_202E_202C_202E_202D_200E_206C_200F_202D_202B_206E_206B_206E_200F_200B_206C_202D_200E_206B_206A_202A_206F_200D_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _202C_200F_206F_200B_206D_202D_202E_200B_202D_202C_200B_202A_206A_206A_202C_200D_206A_206E_206A_202D_202E_206E_206E_200C_200B_200B_202B_206A_206C_202B_200F_206F_200F_206F_202E_206B_200C_206F_200F_206B_202E(object P_0)
{
return P_0.ToString();
}
static void _200B_202C_202C_200C_200C_206E_202E_202C_202E_206B_200B_200D_202E_206C_202E_200B_200E_202C_206A_200E_206E_206A_206D_200B_202C_200C_206C_206D_206A_202B_202B_200B_200C_200D_202A_206E_200D_202B_206C_200C_202E()
{
RuntimeHelpers.EnsureSufficientExecutionStack();
}
static StringBuilder _200E_206A_202E_200F_202C_200D_202A_202D_206D_206C_202E_200B_200E_200E_206C_202D_202B_206B_206E_202A_202A_202D_200D_202C_200B_206D_202B_206F_206C_200B_200E_206C_206A_206F_202E_202A_206F_202D_200E_206C_202E(StringBuilder P_0, object P_1)
{
return P_0.Append(P_1);
}
static bool _200E_202B_200F_206F_200C_200D_200E_200F_206A_200D_202D_206A_206A_202E_202E_202D_206A_202A_200B_200F_200F_202A_200B_206A_206F_206C_200F_200C_206A_206B_202D_200F_200C_200C_206F_200B_206B_202D_202B_206C_202E(Type P_0, Type P_1)
{
return P_0 == P_1;
}
}
private static readonly uint[] KnownTicketItemIds;
public IReadOnlyList<ScannedTicket> ScannedTickets { get; }
public IReadOnlyList<TeleportTicket> Tickets { get; }
internal TeleportTicketService(List<TeleportTicket> tickets)
{
ScannedTickets = Array.Empty<ScannedTicket>();
Tickets = tickets;
}
[MethodImpl(MethodImplOptions.NoInlining)]
public TeleportTicketService(IDataManager dataManager, SmartNavDataOptions dataOptions, ILogger<TeleportTicketService> logger)
{
ScannedTickets = ScanTicketItems(dataManager, logger);
Dictionary<uint, (ushort, Vector3)> dictionary = new Dictionary<uint, (ushort, Vector3)>();
DirectoryInfo? devSourceDirectory = dataOptions.DevSourceDirectory;
IEnumerator<TeleportTicketEntry> enumerator = _206D_206F_206E_206F_200C_200B_202C_200C_200C_206D_200F_206B_202D_202C_206F_200C_202B_206C_202A_202A_206E_200C_202C_200E_202C_206A_206E_202C_200C_200E_200F_206D_200C_202B_206F_206D_200E_202D_200F_202A_202E((devSourceDirectory != null) ? _206C_206F_200C_202C_206B_202A_200B_202A_206F_206F_200D_206D_206F_202C_200F_200C_200B_206A_206D_206E_202D_200E_206C_200C_200E_200B_202E_206D_200D_202E_206D_206F_200E_200D_206B_206E_206A_200B_202E_206C_202E((FileSystemInfo)devSourceDirectory) : null).Values.GetEnumerator();
try
{
while (_206D_206B_206F_206A_206A_200B_202C_202E_206E_202C_200B_200E_202D_206C_200B_200C_202D_206D_206A_200E_202C_206D_206D_206F_206C_200F_206D_200E_206F_206B_206E_202E_206F_206A_202A_200F_200D_202D_202D_200E_202E((IEnumerator)enumerator))
{
TeleportTicketEntry current = enumerator.Current;
ApplyEntry(dictionary, current);
}
}
finally
{
if (enumerator != null)
{
_200B_200C_200D_202C_200C_202A_202A_200F_200F_202A_200D_200C_202E_200D_202E_200B_206A_202E_200C_200D_202C_206C_202B_200C_200D_202C_206E_202C_202E_206B_200F_206C_202A_202D_202B_202C_202C_206D_202D_206C_202E((IDisposable)enumerator);
}
}
if (dataOptions.UserOverrideDirectory != null)
{
LoadDestinationsFrom(_200D_206A_206D_206A_206C_202C_200E_206D_206C_206F_200C_200D_206A_202B_202C_200C_202A_200B_202B_200E_206F_206A_206B_200B_202E_200E_200C_200D_200C_202D_202C_202C_202A_200E_202E_200E_200D_206A_202B_200C_202E(_206C_206F_200C_202C_206B_202A_200B_202A_206F_206F_200D_206D_206F_202C_200F_200C_200B_206A_206D_206E_202D_200E_206C_200C_200E_200B_202E_206D_200D_202E_206D_206F_200E_200D_206B_206E_206A_200B_202E_206C_202E((FileSystemInfo)dataOptions.UserOverrideDirectory), global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-214131285)), dictionary, logger);
}
ExcelSheet<ItemActionTelepo> excelSheet = dataManager.GetExcelSheet<ItemActionTelepo>();
List<TeleportTicket> list = new List<TeleportTicket>();
IEnumerator<ScannedTicket> enumerator2 = ScannedTickets.GetEnumerator();
try
{
while (_206D_206B_206F_206A_206A_200B_202C_202E_206E_202C_200B_200E_202D_206C_200B_200C_202D_206D_206A_200E_202C_206D_206D_206F_206C_200F_206D_200E_206F_206B_206E_202E_206F_206A_202A_200F_200D_202D_202D_200E_202E((IEnumerator)enumerator2))
{
ScannedTicket current2 = enumerator2.Current;
if (!dictionary.TryGetValue(current2.ItemId, out var value))
{
_206B_206F_200D_206E_202B_202E_206A_200F_202A_206C_206F_202A_200F_206D_206A_202D_206C_202C_202E_206B_206F_202E_206F_206D_202A_200F_200F_200E_206D_206A_202E_206C_206D_202C_200F_200F_206F_206D_200F_202C_202E((ILogger)logger, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1318998580), new object[2] { current2.ItemId, current2.Name });
}
else
{
uint num = excelSheet.GetRowOrDefault(current2.ItemActionData[0])?.Requirement.RowId ?? 0;
list.Add(new TeleportTicket(current2.ItemId, current2.Name, value.Item1, value.Item2, (byte)((num >= 1 && num <= 3) ? ((byte)num) : 0), (num >= 65536) ? num : 0u));
}
}
}
finally
{
if (enumerator2 != null)
{
_200B_200C_200D_202C_200C_202A_202A_200F_200F_202A_200D_200C_202E_200D_202E_200B_206A_202E_200C_200D_202C_206C_202B_200C_200D_202C_206E_202C_202E_206B_200F_206C_202A_202D_202B_202C_202C_206D_202D_206C_202E((IDisposable)enumerator2);
}
}
Tickets = list;
_206A_206C_206C_202C_202C_206E_202C_206F_202C_200F_200F_206F_206B_206F_200E_202C_200D_200E_206A_206E_200B_200D_206B_206D_200D_202C_206A_202C_200B_206E_200D_202B_202E_206C_206A_200F_202C_202E_206C_206E_202E((ILogger)logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1282340065), new object[2] { ScannedTickets.Count, list.Count });
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static List<ScannedTicket> ScanTicketItems(IDataManager dataManager, ILogger logger)
{
ExcelSheet<Item> excelSheet = dataManager.GetExcelSheet<Item>();
uint? num = null;
uint[] knownTicketItemIds = KnownTicketItemIds;
int num2 = 0;
int num3 = -2085150822;
List<ScannedTicket> list = default(List<ScannedTicket>);
ItemAction? itemAction = default(ItemAction?);
Item current = default(Item);
string text = default(string);
ItemAction? valueNullable = default(ItemAction?);
while (true)
{
int num4 = num3;
int num5 = -2085150820;
int num6 = num4;
int num7 = num6 + num5;
int num8 = num6 & num5;
switch (num7 - (num8 + num8))
{
case 5:
_206B_202B_206F_200B_206A_200D_206D_200D_206E_202A_206A_202B_202E_202D_200C_206F_200C_200D_202A_202B_200B_206F_200D_206C_206B_206B_202B_202D_206F_202A_202A_200C_200C_206F_206B_206F_202A_206E_200B_200F_202E(logger, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(258108496), Array.Empty<object>());
return list;
case 1:
{
int num12 = num2;
num5 = 1;
num6 = num12;
int num13 = num6 ^ num5;
int num14 = num6 & num5;
num2 = num13 + (num14 + num14);
num3 = -2085150822;
break;
}
case 6:
num3 = ((num2 < knownTicketItemIds.Length) ? (-2085150821) : (-2085150824));
break;
case 7:
{
uint rowId = knownTicketItemIds[num2];
itemAction = excelSheet.GetRowOrDefault(rowId)?.ItemAction.ValueNullable;
num3 = ((!itemAction.HasValue) ? (-2085150819) : (-2085150820));
break;
}
case 2:
num3 = -2085150822;
break;
case 4:
list = new List<ScannedTicket>();
num3 = (num.HasValue ? (-2085150817) : (-2085150823));
break;
case 0:
num = itemAction.Value.Action.RowId;
num3 = -2085150824;
break;
case 3:
{
using (ExcelSheet<Item>.Enumerator enumerator = excelSheet.GetEnumerator())
{
num3 = -1333025980;
while (true)
{
int num9 = num3;
num5 = -1333025980;
num6 = num9;
int num10 = num6 + num5;
int num11 = num6 & num5;
switch (num10 - (num11 + num11))
{
case 6:
list.Add(new ScannedTicket(current.RowId, text, valueNullable.Value.RowId, new ushort[3]
{
valueNullable.Value.Data[0],
valueNullable.Value.Data[1],
valueNullable.Value.Data[2]
}));
num3 = -1333025980;
break;
case 4:
text = current.Name.ExtractText();
num3 = (_206A_200B_200F_202E_202C_202B_206A_202B_206F_206D_206A_202E_206E_200F_200E_206F_206E_206E_206C_206E_202B_206E_206C_202B_202A_206D_200E_200F_200B_200F_200C_200B_206C_200C_206A_200D_206D_206D_202E_206D_202E(text) ? (-1333025980) : (-1333025982));
break;
case 2:
num3 = ((valueNullable.Value.Action.RowId != num) ? (-1333025980) : (-1333025984));
break;
case 3:
current = enumerator.Current;
num3 = ((current.RowId == 0) ? (-1333025980) : (-1333025979));
break;
case 0:
num3 = (enumerator.MoveNext() ? (-1333025977) : (-1333025981));
break;
case 5:
num3 = -1333025980;
break;
case 1:
valueNullable = current.ItemAction.ValueNullable;
num3 = ((!valueNullable.HasValue) ? (-1333025980) : (-1333025978));
break;
case 7:
goto end_IL_01ae;
}
continue;
end_IL_01ae:
break;
}
}
list.Sort((ScannedTicket a, ScannedTicket b) => a.ItemId.CompareTo(b.ItemId));
return list;
}
}
}
}
private static void ApplyEntry(Dictionary<uint, (ushort TerritoryId, Vector3 Position)> destinations, TeleportTicketEntry entry)
{
int num = ((_206A_202A_206E_200E_206B_200E_200D_202C_202D_202A_206D_206B_206A_202C_200C_202E_206A_206D_202B_202A_202A_200E_200E_206A_202D_206A_206D_206A_202B_200C_200D_206C_206D_200C_202D_202A_202A_200E_206B_200E_202E(entry) == 0) ? 1762997114 : 1762997112);
while (true)
{
int num2 = num;
int num3 = 1762997113;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 3:
return;
case 0:
destinations[_206A_202A_206E_200E_206B_200E_200D_202C_202D_202A_206D_206B_206A_202C_200C_202E_206A_206D_202B_202A_202A_200E_200E_206A_202D_206A_206D_206A_202B_200C_200D_206C_206D_200C_202D_202A_202A_200E_206B_200E_202E(entry)] = (_200D_206A_202E_206E_200B_206D_206D_202E_200C_206E_202E_202B_200F_206D_202A_206D_202D_202A_200D_200F_206B_202E_200C_206B_202B_202A_202D_206D_206B_202C_200C_202C_202A_200F_206A_200B_202A_202A_200C_206E_202E(entry), _206C_200B_200F_202B_202A_206E_206C_202C_206A_202E_200C_202D_202A_206E_202C_200F_206A_202E_202A_206F_202D_200B_200E_200B_200C_206D_206A_206C_202A_202A_200E_200D_206C_200E_202A_202A_206B_206A_202A_206D_202E(entry));
num = 1762997114;
break;
case 1:
num = ((_200D_206A_202E_206E_200B_206D_206D_202E_200C_206E_202E_202B_200F_206D_202A_206D_202D_202A_200D_200F_206B_202E_200C_206B_202B_202A_202D_206D_206B_202C_200C_202C_202A_200F_206A_200B_202A_202A_200C_206E_202E(entry) <= 0) ? 1762997114 : 1762997113);
break;
case 2:
num = 1762997112;
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static void LoadDestinationsFrom(string path, Dictionary<uint, (ushort TerritoryId, Vector3 Position)> destinations, ILogger logger)
{
int num = (_200C_200F_206E_202A_206A_202B_200E_202B_202A_202B_202C_202A_200F_206D_202A_200B_200C_200D_200C_202A_206D_206D_200B_206B_200E_200C_202D_200B_200C_202C_202E_206E_200B_200B_202E_206D_206F_206F_200F_202C_202E(path) ? (-1900473582) : (-1900473579));
TeleportTicketFile teleportTicketFile = default(TeleportTicketFile);
while (true)
{
int num2 = num;
int num3 = -1900473583;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
num = -1900473579;
break;
case 0:
return;
case 3:
teleportTicketFile = JsonSerializer.Deserialize<TeleportTicketFile>(_206D_200F_206B_206E_206B_202B_200B_206F_200E_206C_206D_200C_206A_202B_200B_202E_200C_202A_206D_206E_202C_206F_202A_200F_200E_202E_206B_200E_200E_202A_206A_200F_202B_200B_206C_200F_206A_202A_202B_202B_202E(path));
num = ((teleportTicketFile != null) ? (-1900473584) : (-1900473583));
break;
case 4:
return;
case 1:
{
using (Dictionary<string, TeleportTicketEntry>.ValueCollection.Enumerator enumerator = _206D_200B_206D_206E_200B_200D_202B_200D_200E_202A_206B_206F_200F_200F_202A_206E_200C_200B_200E_200C_202A_200F_202B_202D_206A_202B_202D_206A_202A_200C_206C_206A_200B_206E_202C_202A_202E_206B_206E_202C_202E(teleportTicketFile).Values.GetEnumerator())
{
num = -1775010946;
while (true)
{
int num7 = num;
num3 = -1775010946;
num4 = num7;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
num = -1775010946;
break;
case 0:
num = (enumerator.MoveNext() ? (-1775010945) : (-1775010947));
break;
case 1:
{
TeleportTicketEntry current = enumerator.Current;
ApplyEntry(destinations, current);
num = -1775010946;
break;
}
case 3:
goto end_IL_00a8;
}
continue;
end_IL_00a8:
break;
}
}
_206B_206F_200D_206E_202B_202E_206A_200F_202A_206C_206F_202A_200F_206D_206A_202D_206C_202C_202E_206B_206F_202E_206F_206D_202A_200F_200F_200E_206D_206A_202E_206C_206D_202C_200F_200F_206F_206D_200F_202C_202E(logger, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1363837168), new object[2]
{
_206D_200B_206D_206E_200B_200D_202B_200D_200E_202A_206B_206F_200F_200F_202A_206E_200C_200B_200E_200C_202A_200F_202B_202D_206A_202B_202D_206A_202A_200C_206C_206A_200B_206E_202C_202A_202E_206B_206E_202C_202E(teleportTicketFile).Count,
path
});
return;
}
}
}
}
static TeleportTicketService()
{
uint[] array = new uint[5];
_200C_202E_200C_202A_202E_202D_202A_200F_206E_202A_206A_200B_206F_200F_202C_202B_206A_202B_200C_200C_200B_206E_202B_202A_206C_206E_206D_202E_200D_202D_200F_206A_206C_200D_202C_206E_200F_206F_206F_202B_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
KnownTicketItemIds = array;
}
static string _206C_206F_200C_202C_206B_202A_200B_202A_206F_206F_200D_206D_206F_202C_200F_200C_200B_206A_206D_206E_202D_200E_206C_200C_200E_200B_202E_206D_200D_202E_206D_206F_200E_200D_206B_206E_206A_200B_202E_206C_202E(FileSystemInfo P_0)
{
return P_0.FullName;
}
static IReadOnlyDictionary<string, TeleportTicketEntry> _206D_206F_206E_206F_200C_200B_202C_200C_200C_206D_200F_206B_202D_202C_206F_200C_202B_206C_202A_202A_206E_200C_202C_200E_202C_206A_206E_202C_200C_200E_200F_206D_200C_202B_206F_206D_200E_202D_200F_202A_202E(string P_0)
{
return AssemblyTeleportTicketLoader.GetTickets(P_0);
}
static bool _206D_206B_206F_206A_206A_200B_202C_202E_206E_202C_200B_200E_202D_206C_200B_200C_202D_206D_206A_200E_202C_206D_206D_206F_206C_200F_206D_200E_206F_206B_206E_202E_206F_206A_202A_200F_200D_202D_202D_200E_202E(IEnumerator P_0)
{
return P_0.MoveNext();
}
static void _200B_200C_200D_202C_200C_202A_202A_200F_200F_202A_200D_200C_202E_200D_202E_200B_206A_202E_200C_200D_202C_206C_202B_200C_200D_202C_206E_202C_202E_206B_200F_206C_202A_202D_202B_202C_202C_206D_202D_206C_202E(IDisposable P_0)
{
P_0.Dispose();
}
static string _200D_206A_206D_206A_206C_202C_200E_206D_206C_206F_200C_200D_206A_202B_202C_200C_202A_200B_202B_200E_206F_206A_206B_200B_202E_200E_200C_200D_200C_202D_202C_202C_202A_200E_202E_200E_200D_206A_202B_200C_202E(string P_0, string P_1)
{
return Path.Combine(P_0, P_1);
}
static void _206B_206F_200D_206E_202B_202E_206A_200F_202A_206C_206F_202A_200F_206D_206A_202D_206C_202C_202E_206B_206F_202E_206F_206D_202A_200F_200F_200E_206D_206A_202E_206C_206D_202C_200F_200F_206F_206D_200F_202C_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogDebug(P_1, P_2);
}
static void _206A_206C_206C_202C_202C_206E_202C_206F_202C_200F_200F_206F_206B_206F_200E_202C_200D_200E_206A_206E_200B_200D_206B_206D_200D_202C_206A_202C_200B_206E_200D_202B_202E_206C_206A_200F_202C_202E_206C_206E_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogInformation(P_1, P_2);
}
static void _206B_202B_206F_200B_206A_200D_206D_200D_206E_202A_206A_202B_202E_202D_200C_206F_200C_200D_202A_202B_200B_206F_200D_206C_206B_206B_202B_202D_206F_202A_202A_200C_200C_206F_206B_206F_202A_206E_200B_200F_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogWarning(P_1, P_2);
}
static bool _206A_200B_200F_202E_202C_202B_206A_202B_206F_206D_206A_202E_206E_200F_200E_206F_206E_206E_206C_206E_202B_206E_206C_202B_202A_206D_200E_200F_200B_200F_200C_200B_206C_200C_206A_200D_206D_206D_202E_206D_202E(string P_0)
{
return string.IsNullOrEmpty(P_0);
}
static uint _206A_202A_206E_200E_206B_200E_200D_202C_202D_202A_206D_206B_206A_202C_200C_202E_206A_206D_202B_202A_202A_200E_200E_206A_202D_206A_206D_206A_202B_200C_200D_206C_206D_200C_202D_202A_202A_200E_206B_200E_202E(TeleportTicketEntry P_0)
{
return P_0.ItemId;
}
static ushort _200D_206A_202E_206E_200B_206D_206D_202E_200C_206E_202E_202B_200F_206D_202A_206D_202D_202A_200D_200F_206B_202E_200C_206B_202B_202A_202D_206D_206B_202C_200C_202C_202A_200F_206A_200B_202A_202A_200C_206E_202E(TeleportTicketEntry P_0)
{
return P_0.DestTerritoryId;
}
static Vector3 _206C_200B_200F_202B_202A_206E_206C_202C_206A_202E_200C_202D_202A_206E_202C_200F_206A_202E_202A_206F_202D_200B_200E_200B_200C_206D_206A_206C_202A_202A_200E_200D_206C_200E_202A_202A_206B_206A_202A_206D_202E(TeleportTicketEntry P_0)
{
return P_0.DestPosition;
}
static bool _200C_200F_206E_202A_206A_202B_200E_202B_202A_202B_202C_202A_200F_206D_202A_200B_200C_200D_200C_202A_206D_206D_200B_206B_200E_200C_202D_200B_200C_202C_202E_206E_200B_200B_202E_206D_206F_206F_200F_202C_202E(string P_0)
{
return File.Exists(P_0);
}
static string _206D_200F_206B_206E_206B_202B_200B_206F_200E_206C_206D_200C_206A_202B_200B_202E_200C_202A_206D_206E_202C_206F_202A_200F_200E_202E_206B_200E_200E_202A_206A_200F_202B_200B_206C_200F_206A_202A_202B_202B_202E(string P_0)
{
return File.ReadAllText(P_0);
}
static Dictionary<string, TeleportTicketEntry> _206D_200B_206D_206E_200B_200D_202B_200D_200E_202A_206B_206F_200F_200F_202A_206E_200C_200B_200E_200C_202A_200F_202B_202D_206A_202B_202D_206A_202A_200C_206C_206A_200B_206E_202C_202A_202E_206B_206E_202C_202E(TeleportTicketFile P_0)
{
return P_0.Tickets;
}
static void _200C_202E_200C_202A_202E_202D_202A_200F_206E_202A_206A_200B_206F_200F_202C_202B_206A_202B_200C_200C_200B_206E_202B_202A_206C_206E_206D_202E_200D_202D_200F_206A_206C_200D_202C_206E_200F_206F_206F_202B_202E(Array P_0, RuntimeFieldHandle P_1)
{
RuntimeHelpers.InitializeArray(P_0, P_1);
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,920 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using System.Runtime.CompilerServices;
using Microsoft.Extensions.Logging;
using SmartNav.Model.Navigation;
namespace SmartNav.Data;
internal static class ZoneBoundaryDerivation
{
[Serializable]
[CompilerGenerated]
private sealed class _003C_003Ec
{
public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec();
public static Func<ZoneBoundary, (ushort, ushort)> _003C_003E9__1_1;
public static Func<IGrouping<(ushort, ushort), ZoneBoundary>, (ushort, ushort)> _003C_003E9__1_2;
public static Func<IGrouping<(ushort, ushort), ZoneBoundary>, List<ZoneBoundary>> _003C_003E9__1_3;
public static Func<ZoneBoundaryPositionOverride, (ushort TerritoryA, ushort TerritoryB)> _003C_003E9__1_4;
public static Func<(float Distance, int GateIdx, int OverrideIdx), float> _003C_003E9__1_5;
internal (ushort, ushort) _003CApplyOverrides_003Eb__1_1(ZoneBoundary b)
{
return _003CApplyOverrides_003Eg__PairKey_007C1_0(_206D_206F_200D_206F_206B_202C_206B_206C_200F_206E_202A_202E_202B_202E_200D_206A_200D_202A_206A_202D_200D_200B_206E_200F_202C_202D_206A_200F_200C_206C_206B_206C_200B_202D_202C_202C_200C_200C_200C_202E_202E(_200B_202E_206E_206E_206E_202A_202D_202A_202D_206A_206F_202B_200C_206B_206C_200E_206D_202B_200D_200B_202B_206F_206C_202B_206B_200C_206A_206E_202D_200F_206C_200B_206C_200E_202A_202C_202B_206B_200D_202C_202E(b)), _206D_206F_200D_206F_206B_202C_206B_206C_200F_206E_202A_202E_202B_202E_200D_206A_200D_202A_206A_202D_200D_200B_206E_200F_202C_202D_206A_200F_200C_206C_206B_206C_200B_202D_202C_202C_200C_200C_200C_202E_202E(_202B_206C_206B_202E_202D_200C_200F_200C_206D_200C_206F_202B_200F_200C_206E_200C_200E_202E_206E_202B_206E_202A_206A_200D_200D_206B_202D_202D_200D_202E_206D_202E_202E_206C_202D_202E_200C_202E_200C_200F_202E(b)));
}
internal (ushort, ushort) _003CApplyOverrides_003Eb__1_2(IGrouping<(ushort, ushort), ZoneBoundary> g)
{
return g.Key;
}
internal List<ZoneBoundary> _003CApplyOverrides_003Eb__1_3(IGrouping<(ushort, ushort), ZoneBoundary> g)
{
return g.ToList();
}
internal (ushort TerritoryA, ushort TerritoryB) _003CApplyOverrides_003Eb__1_4(ZoneBoundaryPositionOverride o)
{
return (TerritoryA: o.TerritoryA, TerritoryB: o.TerritoryB);
}
internal float _003CApplyOverrides_003Eb__1_5((float Distance, int GateIdx, int OverrideIdx) c)
{
return c.Distance;
}
static BoundarySide _200B_202E_206E_206E_206E_202A_202D_202A_202D_206A_206F_202B_200C_206B_206C_200E_206D_202B_200D_200B_202B_206F_206C_202B_206B_200C_206A_206E_202D_200F_206C_200B_206C_200E_202A_202C_202B_206B_200D_202C_202E(ZoneBoundary P_0)
{
return P_0.Side1;
}
static ushort _206D_206F_200D_206F_206B_202C_206B_206C_200F_206E_202A_202E_202B_202E_200D_206A_200D_202A_206A_202D_200D_200B_206E_200F_202C_202D_206A_200F_200C_206C_206B_206C_200B_202D_202C_202C_200C_200C_200C_202E_202E(BoundarySide P_0)
{
return P_0.TerritoryId;
}
static BoundarySide _202B_206C_206B_202E_202D_200C_200F_200C_206D_200C_206F_202B_200F_200C_206E_200C_200E_202E_206E_202B_206E_202A_206A_200D_200D_206B_202D_202D_200D_202E_206D_202E_202E_206C_202D_202E_200C_202E_200C_200F_202E(ZoneBoundary P_0)
{
return P_0.Side2;
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public static List<ZoneBoundary> Derive(IReadOnlyList<ExitRangeEntry> exitRanges, IReadOnlyDictionary<(ushort TerritoryId, uint InstanceId), PopRangeEntry> popRangeIndex, ILogger logger)
{
List<ZoneBoundary> list = new List<ZoneBoundary>();
HashSet<(ushort, uint)> hashSet = new HashSet<(ushort, uint)>();
List<ExitRangeEntry> list2 = new List<ExitRangeEntry>();
IEnumerator<ExitRangeEntry> enumerator = exitRanges.GetEnumerator();
try
{
ExitRangeEntry current = default(ExitRangeEntry);
Vector3? vector = default(Vector3?);
ExitRangeEntry exitRangeEntry = default(ExitRangeEntry);
ExitRangeEntry current2 = default(ExitRangeEntry);
ExitRangeEntry exitRangeEntry2 = default(ExitRangeEntry);
ExitRangeEntry current3 = default(ExitRangeEntry);
PopRangeEntry value2 = default(PopRangeEntry);
float num12 = default(float);
Vector3? vector3 = default(Vector3?);
while (true)
{
int num;
if (_202D_202B_200E_200D_200F_206B_200E_202A_206C_200F_200C_202B_202A_200E_206D_206C_200D_202D_206D_206B_206A_200D_206C_200D_206A_202C_202A_206B_206E_206B_200D_202C_200F_206C_206E_202C_206B_206D_200F_206A_202E((IEnumerator)enumerator))
{
current = enumerator.Current;
if (hashSet.Contains((current.SourceTerritoryId, current.InstanceId)) || current.DestTerritoryId == 0)
{
continue;
}
vector = null;
if (popRangeIndex.TryGetValue((current.DestTerritoryId, current.DestInstanceId), out PopRangeEntry value))
{
vector = value.Position;
}
exitRangeEntry = null;
IEnumerator<ExitRangeEntry> enumerator2 = exitRanges.GetEnumerator();
try
{
num = 2034045205;
while (true)
{
int num2 = num;
int num3 = 2034045207;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 10:
num = 2034045205;
break;
case 9:
num = ((current2.DestInstanceId == 0) ? 2034045207 : 2034045215);
break;
case 6:
num = ((current2.ReturnInstanceId == 0) ? 2034045205 : 2034045202);
break;
case 0:
num = ((current.DestInstanceId == 0) ? 2034045201 : 2034045211);
break;
case 8:
num = ((current2.DestInstanceId == current.ReturnInstanceId) ? 2034045212 : 2034045207);
break;
case 5:
num = ((current2.ReturnInstanceId != current.InstanceId) ? 2034045205 : 2034045212);
break;
case 4:
num = ((current2.DestTerritoryId != current.SourceTerritoryId) ? 2034045205 : 2034045204);
break;
case 7:
current2 = enumerator2.Current;
num = ((current2.SourceTerritoryId != current.DestTerritoryId) ? 2034045205 : 2034045203);
break;
case 3:
num = (hashSet.Contains((current2.SourceTerritoryId, current2.InstanceId)) ? 2034045205 : 2034045214);
break;
case 2:
num = (_202D_202B_200E_200D_200F_206B_200E_202A_206C_200F_200C_202B_202A_200E_206D_206C_200D_202D_206D_206B_206A_200D_206C_200D_206A_202C_202A_206B_206E_206B_200D_202C_200F_206C_206E_202C_206B_206D_200F_206A_202E((IEnumerator)enumerator2) ? 2034045200 : 2034045206);
break;
case 11:
exitRangeEntry = current2;
goto end_IL_009f;
case 12:
num = ((current.DestInstanceId == current2.ReturnInstanceId) ? 2034045212 : 2034045201);
break;
case 1:
goto end_IL_009f;
}
continue;
end_IL_009f:
break;
}
}
finally
{
num = ((enumerator2 == null) ? 704950987 : 704950984);
while (true)
{
int num7 = num;
int num3 = 704950985;
int num4 = num7;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = 704950984;
break;
case 1:
_206C_206E_202B_206F_206C_206F_202B_206E_206C_200B_200B_206E_206E_202C_206E_202D_200B_202D_202B_202C_200F_202B_200F_206E_206B_206D_206E_206D_206C_200F_200D_200E_206C_206B_206C_202D_206A_206C_200C_206C_202E((IDisposable)enumerator2);
num = 704950987;
break;
case 2:
goto end_IL_02e0;
}
continue;
end_IL_02e0:
break;
}
}
if (!(exitRangeEntry == null))
{
goto IL_07b3;
}
float num8 = float.MaxValue;
exitRangeEntry2 = null;
enumerator2 = exitRanges.GetEnumerator();
try
{
num = 1641010271;
while (true)
{
int num9 = num;
int num3 = 1641010266;
int num4 = num9;
int num10 = num4 + num3;
int num11 = num4 & num3;
switch (num10 - (num11 + num11))
{
case 6:
num = ((!popRangeIndex.TryGetValue((current.SourceTerritoryId, current3.DestInstanceId), out value2)) ? 1641010256 : 1641010267);
break;
case 4:
current3 = enumerator2.Current;
num = ((current3.SourceTerritoryId != current.DestTerritoryId) ? 1641010271 : 1641010258);
break;
case 5:
num = (_202D_202B_200E_200D_200F_206B_200E_202A_206C_200F_200C_202B_202A_200E_206D_206C_200D_202D_206D_206B_206A_200D_206C_200D_206A_202C_202A_206B_206E_206B_200D_202C_200F_206C_206E_202C_206B_206D_200F_206A_202E((IEnumerator)enumerator2) ? 1641010270 : 1641010269);
break;
case 1:
num12 = Vector3.Distance(current.SourcePosition, value2.Position);
num = ((!(num12 < num8)) ? 1641010271 : 1641010259);
break;
case 0:
num = 1641010271;
break;
case 2:
exitRangeEntry2 = current3;
num = 1641010271;
break;
case 3:
num = (hashSet.Contains((current3.SourceTerritoryId, current3.InstanceId)) ? 1641010271 : 1641010268);
break;
case 10:
num = (((object)exitRangeEntry2 != null) ? 1641010271 : 1641010264);
break;
case 8:
num = ((current3.DestTerritoryId != current.SourceTerritoryId) ? 1641010271 : 1641010265);
break;
case 9:
num8 = num12;
exitRangeEntry = current3;
num = 1641010271;
break;
case 7:
goto end_IL_0357;
}
continue;
end_IL_0357:
break;
}
}
finally
{
num = ((enumerator2 == null) ? (-564357358) : (-564357359));
while (true)
{
int num13 = num;
int num3 = -564357357;
int num4 = num13;
int num14 = num4 + num3;
int num15 = num4 & num3;
switch (num14 - (num15 + num15))
{
case 0:
num = -564357359;
break;
case 1:
goto end_IL_053f;
case 2:
_206C_206E_202B_206F_206C_206F_202B_206E_206C_200B_200B_206E_206E_202C_206E_202D_200B_202D_202B_202C_200F_202B_200F_206E_206B_206D_206E_206D_206C_200F_200D_200E_206C_206B_206C_202D_206A_206C_200C_206C_202E((IDisposable)enumerator2);
num = -564357358;
break;
}
continue;
end_IL_053f:
break;
}
}
num = (((object)exitRangeEntry != null) ? (-267048228) : (-267048233));
}
else
{
num = -267048227;
}
goto IL_05ac;
IL_07b3:
num = (((object)exitRangeEntry != null) ? (-267048226) : (-267048232));
goto IL_05ac;
IL_05ac:
while (true)
{
int num16 = num;
int num3 = -267048226;
int num4 = num16;
Vector3? vector2;
switch ((num4 | num3) - (num4 & num3))
{
case 4:
num = -267048233;
break;
case 6:
vector2 = vector;
goto IL_061f;
case 0:
vector2 = exitRangeEntry.SourcePosition;
goto IL_061f;
case 7:
list2.Add(current);
num = -267048234;
break;
case 1:
goto IL_0659;
case 8:
goto end_IL_05ac;
case 2:
goto IL_07b3;
case 9:
exitRangeEntry = exitRangeEntry2;
num = -267048228;
break;
case 5:
hashSet.Add((exitRangeEntry.SourceTerritoryId, exitRangeEntry.InstanceId));
num = -267048234;
break;
case 3:
goto end_IL_079b;
IL_061f:
vector3 = vector2;
num = (vector3.HasValue ? (-267048225) : (-267048231));
break;
}
continue;
IL_0659:
ZoneBoundary zoneBoundary = _202E_200D_206B_202D_206A_206B_200F_202B_200B_206D_202C_206E_206F_206B_206B_202C_202E_202A_202B_200D_200B_200E_202A_202A_206F_202C_206F_206B_200C_200C_200C_206C_200B_202D_200D_206F_202D_200F_200B_206C_202E();
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(6, 3);
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1989489141));
defaultInterpolatedStringHandler.AppendFormatted(current.SourceTerritoryId);
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-642304930));
defaultInterpolatedStringHandler.AppendFormatted(current.DestTerritoryId);
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-493592002));
defaultInterpolatedStringHandler.AppendFormatted(current.InstanceId);
_202D_202C_206F_206A_202B_200E_206C_206C_206F_202B_202B_206B_206D_206F_206A_202E_202D_206A_200F_200B_206E_200B_200D_206C_206B_202C_202B_206D_206B_206A_202B_206E_202B_202E_202D_200E_200D_206A_200B_206B_202E(zoneBoundary, defaultInterpolatedStringHandler.ToStringAndClear());
BoundarySide boundarySide = _202A_202A_202B_206F_200B_200B_206A_206F_206A_202A_206A_200B_200B_200F_202B_206C_200C_206F_200B_206C_200E_200B_202A_200E_200C_200C_202A_200D_206F_206C_202D_202E_202B_202C_200B_200E_206B_202D_202D_206F_202E();
_202A_202A_200F_206F_206B_206B_206D_206B_200B_200B_206F_200D_206F_202D_200B_200F_202D_206A_202A_200B_206A_200F_206A_200B_200C_200B_202A_200C_206F_200C_200C_200C_202D_200F_200C_202E_202A_200D_202A_202A_202E(boundarySide, current.SourceTerritoryId);
_200C_202D_200E_202A_202C_206D_200D_202C_200D_202E_202E_206B_206D_202E_202B_206A_200E_202A_202B_200F_202C_206C_206B_200B_200B_200D_202A_206A_206A_202E_200F_206B_206C_202E_200C_206A_200D_202A_202C_200D_202E(boundarySide, current.SourcePosition);
_200C_206F_200C_202B_206A_202A_206E_200F_202E_200E_202A_200D_200B_202D_200B_202A_202B_206B_206A_200B_206F_202C_202C_202C_202C_206D_202E_202E_200B_202A_206E_202B_206B_206A_202C_202E_202E_206F_206E_200F_202E(boundarySide, TriggerOf(current));
_206E_206D_200C_200F_202C_202D_200F_206F_200D_206E_202E_202B_200D_206E_202D_200D_200B_202B_202B_202E_202E_200F_206F_200C_202A_200B_206B_202E_206A_202C_202D_206E_206F_202E_200F_200B_202D_206A_206C_200C_202E(zoneBoundary, boundarySide);
BoundarySide boundarySide2 = _202A_202A_202B_206F_200B_200B_206A_206F_206A_202A_206A_200B_200B_200F_202B_206C_200C_206F_200B_206C_200E_200B_202A_200E_200C_200C_202A_200D_206F_206C_202D_202E_202B_202C_200B_200E_206B_202D_202D_206F_202E();
_202A_202A_200F_206F_206B_206B_206D_206B_200B_200B_206F_200D_206F_202D_200B_200F_202D_206A_202A_200B_206A_200F_206A_200B_200C_200B_202A_200C_206F_200C_200C_200C_202D_200F_200C_202E_202A_200D_202A_202A_202E(boundarySide2, current.DestTerritoryId);
_200C_202D_200E_202A_202C_206D_200D_202C_200D_202E_202E_206B_206D_202E_202B_206A_200E_202A_202B_200F_202C_206C_206B_200B_200B_200D_202A_206A_206A_202E_200F_206B_206C_202E_200C_206A_200D_202A_202C_200D_202E(boundarySide2, vector3.Value);
_200C_206F_200C_202B_206A_202A_206E_200F_202E_200E_202A_200D_200B_202D_200B_202A_202B_206B_206A_200B_206F_202C_202C_202C_202C_206D_202E_202E_200B_202A_206E_202B_206B_206A_202C_202E_202E_206F_206E_200F_202E(boundarySide2, (exitRangeEntry == null) ? null : TriggerOf(exitRangeEntry));
_206C_202E_202B_200D_202A_200C_200C_206A_200C_202C_206E_206A_200C_206F_206B_206E_206B_206E_206E_206E_206A_200E_200E_206D_206C_206F_200D_202A_202D_200E_202A_200C_200B_206E_200C_206C_200B_206A_200C_202A_202E(zoneBoundary, boundarySide2);
_202D_202D_206F_202D_206F_202C_206C_202C_206D_206D_202C_206D_200B_206E_206A_202E_206E_202B_202A_206D_202E_206F_202D_200F_200D_206C_202B_200C_206A_206E_202C_206F_202D_202D_200F_202E_200C_202B_200F_200F_202E(zoneBoundary, exitRangeEntry == null);
list.Add(zoneBoundary);
hashSet.Add((current.SourceTerritoryId, current.InstanceId));
num = ((!(exitRangeEntry != null)) ? (-267048234) : (-267048229));
continue;
end_IL_05ac:
break;
}
continue;
end_IL_079b:
break;
}
}
finally
{
int num = ((enumerator == null) ? (-1091399177) : (-1091399180));
while (true)
{
int num17 = num;
int num3 = -1091399178;
int num4 = num17;
int num18 = num4 + num3;
int num19 = num4 & num3;
switch (num18 - (num19 + num19))
{
case 0:
num = -1091399180;
break;
case 2:
_206C_206E_202B_206F_206C_206F_202B_206E_206C_200B_200B_206E_206E_202C_206E_202D_200B_202D_202B_202C_200F_202B_200F_206E_206B_206D_206E_206D_206C_200F_200D_200E_206C_206B_206C_202D_206A_206C_200C_206C_202E((IDisposable)enumerator);
num = -1091399177;
break;
case 1:
goto end_IL_082c;
}
continue;
end_IL_082c:
break;
}
}
HashSet<(ushort, ushort)> hashSet2 = new HashSet<(ushort, ushort)>();
using (List<ZoneBoundary>.Enumerator enumerator3 = list.GetEnumerator())
{
int num = 1178177588;
while (true)
{
int num20 = num;
int num3 = 1178177589;
int num4 = num20;
switch ((num4 | num3) - (num4 & num3))
{
case 3:
num = 1178177588;
break;
case 2:
{
ZoneBoundary current4 = enumerator3.Current;
hashSet2.Add((_202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(_206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(current4)), _202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(_206E_206F_202C_202D_200E_202C_200B_206D_206C_206F_202A_206E_200D_206D_202B_200E_200E_200D_202C_202D_206B_202A_202B_200B_200B_202B_202C_206A_202A_206A_206E_202D_200F_202D_206C_206E_206B_200B_206D_206B_202E(current4))));
hashSet2.Add((_202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(_206E_206F_202C_202D_200E_202C_200B_206D_206C_206F_202A_206E_200D_206D_202B_200E_200E_200D_202C_202D_206B_202A_202B_200B_200B_202B_202C_206A_202A_206A_206E_202D_200F_202D_206C_206E_206B_200B_206D_206B_202E(current4)), _202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(_206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(current4))));
num = 1178177588;
break;
}
case 1:
num = (enumerator3.MoveNext() ? 1178177591 : 1178177589);
break;
case 0:
goto end_IL_0894;
}
continue;
end_IL_0894:
break;
}
}
using List<ExitRangeEntry>.Enumerator enumerator4 = list2.GetEnumerator();
int num = -784506281;
ExitRangeEntry current5 = default(ExitRangeEntry);
while (true)
{
int num21 = num;
int num3 = -784506286;
int num4 = num21;
int num22 = num4 + num3;
int num23 = num4 & num3;
switch (num22 - (num23 + num23))
{
case 2:
_200D_206A_206E_206E_202D_206D_206C_202A_200E_202B_200D_200E_206A_200C_202E_206D_202E_200B_200B_206A_200B_206D_206E_202E_200D_202C_200E_200B_200B_206F_206E_206E_200F_202D_200B_200B_206E_206F_206C_202B_202E(logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1622363206), new object[4] { current5.InstanceId, current5.SourceTerritoryId, current5.DestTerritoryId, current5.DestInstanceId });
num = -784506281;
break;
case 5:
num = (enumerator4.MoveNext() ? (-784506285) : (-784506287));
break;
case 1:
current5 = enumerator4.Current;
num = ((!hashSet2.Contains((current5.SourceTerritoryId, current5.DestTerritoryId))) ? (-784506288) : (-784506282));
break;
case 0:
num = -784506281;
break;
case 4:
_202D_200E_200D_200C_206C_200C_200E_202E_206E_202A_200B_200C_206A_200E_206B_200C_200E_200C_200B_206E_206A_206D_202E_200B_200B_202B_202D_206D_202E_202A_202C_200C_206F_202E_206C_202D_202D_206F_206E_206F_202E(logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-566963400), new object[3] { current5.InstanceId, current5.SourceTerritoryId, current5.DestTerritoryId });
num = -784506281;
break;
case 3:
return list;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public static void ApplyOverrides(List<ZoneBoundary> boundaries, IReadOnlyCollection<(ushort TerritoryA, ushort TerritoryB)> flyingPairs, IReadOnlyList<ZoneBoundaryPositionOverride> positionOverrides, ILogger logger)
{
HashSet<(ushort, ushort)> hashSet = new HashSet<(ushort, ushort)>(flyingPairs);
int num;
using (List<ZoneBoundary>.Enumerator enumerator = boundaries.GetEnumerator())
{
num = -1561912476;
ZoneBoundary current = default(ZoneBoundary);
while (true)
{
int num2 = num;
int num3 = -1561912474;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
_206D_200F_200E_202B_202D_200F_206D_200C_200C_200E_206E_202C_202D_206A_206C_200F_200E_206C_206A_206F_206A_200C_206E_206D_202B_206F_200C_206E_200C_202A_202C_206A_200D_206C_200C_206B_200D_202A_200C_206E_202E(current, true);
num = -1561912476;
break;
case 1:
current = enumerator.Current;
num = ((!hashSet.Contains(PairKey(_202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(_206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(current)), _202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(_206E_206F_202C_202D_200E_202C_200B_206D_206C_206F_202A_206E_200D_206D_202B_200E_200E_200D_202C_202D_206B_202A_202B_200B_200B_202B_202C_206A_202A_206A_206E_202D_200F_202D_206C_206E_206B_200B_206D_206B_202E(current))))) ? (-1561912476) : (-1561912474));
break;
case 2:
num = (enumerator.MoveNext() ? (-1561912473) : (-1561912475));
break;
case 4:
num = -1561912476;
break;
case 3:
goto end_IL_001a;
}
continue;
end_IL_001a:
break;
}
}
Dictionary<(ushort, ushort), List<ZoneBoundary>> dictionary = (from b in boundaries
group b by PairKey(_003C_003Ec._206D_206F_200D_206F_206B_202C_206B_206C_200F_206E_202A_202E_202B_202E_200D_206A_200D_202A_206A_202D_200D_200B_206E_200F_202C_202D_206A_200F_200C_206C_206B_206C_200B_202D_202C_202C_200C_200C_200C_202E_202E(_003C_003Ec._200B_202E_206E_206E_206E_202A_202D_202A_202D_206A_206F_202B_200C_206B_206C_200E_206D_202B_200D_200B_202B_206F_206C_202B_206B_200C_206A_206E_202D_200F_206C_200B_206C_200E_202A_202C_202B_206B_200D_202C_202E(b)), _003C_003Ec._206D_206F_200D_206F_206B_202C_206B_206C_200F_206E_202A_202E_202B_202E_200D_206A_200D_202A_206A_202D_200D_200B_206E_200F_202C_202D_206A_200F_200C_206C_206B_206C_200B_202D_202C_202C_200C_200C_200C_202E_202E(_003C_003Ec._202B_206C_206B_202E_202D_200C_200F_200C_206D_200C_206F_202B_200F_200C_206E_200C_200E_202E_206E_202B_206E_202A_206A_200D_200D_206B_202D_202D_200D_202E_206D_202E_202E_206C_202D_202E_200C_202E_200C_200F_202E(b)))).ToDictionary((IGrouping<(ushort, ushort), ZoneBoundary> g) => g.Key, (IGrouping<(ushort, ushort), ZoneBoundary> g) => g.ToList());
int num7 = 0;
IEnumerator<IGrouping<(ushort, ushort), ZoneBoundaryPositionOverride>> enumerator2 = (from o in positionOverrides
group o by (TerritoryA: o.TerritoryA, TerritoryB: o.TerritoryB)).GetEnumerator();
try
{
List<ZoneBoundaryPositionOverride> list = default(List<ZoneBoundaryPositionOverride>);
bool[] array2 = default(bool[]);
(float, int, int) current3 = default((float, int, int));
int num14 = default(int);
while (true)
{
IL_0519:
if (_202D_202B_200E_200D_200F_206B_200E_202A_206C_200F_200C_202B_202A_200E_206D_206C_200D_202D_206D_206B_206A_200D_206C_200D_206A_202C_202A_206B_206E_206B_200D_202C_200F_206C_206E_202C_206B_206D_200F_206A_202E((IEnumerator)enumerator2))
{
IGrouping<(ushort, ushort), ZoneBoundaryPositionOverride> current2 = enumerator2.Current;
list = current2.ToList();
if (!dictionary.TryGetValue(current2.Key, out var value))
{
num7 += list.Count;
_200D_206A_206E_206E_202D_206D_206C_202A_200E_202B_200D_200E_206A_200C_202E_206D_202E_200B_200B_206A_200B_206D_206E_202E_200D_202C_200E_200B_200B_206F_206E_206E_200F_202D_200B_200B_206E_206F_206C_202B_202E(logger, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1356546708), new object[3]
{
current2.Key.Item1,
current2.Key.Item2,
list.Count
});
continue;
}
List<(float, int, int)> list2 = new List<(float, int, int)>();
int num8 = 0;
while (num8 < value.Count)
{
int num3;
int num4;
for (int num9 = 0; num9 < list.Count; num9 = (num4 | num3) + (num4 & num3))
{
list2.Add((OverrideDistance(value[num8], list[num9]), num8, num9));
int num10 = num9;
num3 = 1;
num4 = num10;
}
int num11 = num8;
num3 = 1;
num4 = num11;
num8 = (num4 | num3) + (num4 & num3);
}
bool[] array = new bool[value.Count];
array2 = new bool[list.Count];
IEnumerator<(float, int, int)> enumerator3 = list2.OrderBy<(float, int, int), float>(((float Distance, int GateIdx, int OverrideIdx) c) => c.Distance).GetEnumerator();
try
{
num = -397486009;
while (true)
{
int num12 = num;
int num3 = -397486013;
int num4 = num12;
switch ((num4 | num3) - (num4 & num3))
{
case 3:
num = -397486009;
break;
case 5:
num = (array2[current3.Item3] ? (-397486009) : (-397486015));
break;
case 4:
num = (_202D_202B_200E_200D_200F_206B_200E_202A_206C_200F_200C_202B_202A_200E_206D_206C_200D_202D_206D_206B_206A_200D_206C_200D_206A_202C_202A_206B_206E_206B_200D_202C_200F_206C_206E_202C_206B_206D_200F_206A_202E((IEnumerator)enumerator3) ? (-397486014) : (-397486013));
break;
case 2:
{
array[current3.Item2] = true;
array2[current3.Item3] = true;
ZoneBoundary zoneBoundary = value[current3.Item2];
ZoneBoundaryPositionOverride zoneBoundaryPositionOverride = list[current3.Item3];
bool flag = _202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(_206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(zoneBoundary)) == zoneBoundaryPositionOverride.TerritoryA;
_200C_202D_200E_202A_202C_206D_200D_202C_200D_202E_202E_206B_206D_202E_202B_206A_200E_202A_202B_200F_202C_206C_206B_200B_200B_200D_202A_206A_206A_202E_200F_206B_206C_202E_200C_206A_200D_202A_202C_200D_202E(_206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(zoneBoundary), flag ? zoneBoundaryPositionOverride.PositionA : zoneBoundaryPositionOverride.PositionB);
_200C_202D_200E_202A_202C_206D_200D_202C_200D_202E_202E_206B_206D_202E_202B_206A_200E_202A_202B_200F_202C_206C_206B_200B_200B_200D_202A_206A_206A_202E_200F_206B_206C_202E_200C_206A_200D_202A_202C_200D_202E(_206E_206F_202C_202D_200E_202C_200B_206D_206C_206F_202A_206E_200D_206D_202B_200E_200E_200D_202C_202D_206B_202A_202B_200B_200B_202B_202C_206A_202A_206A_206E_202D_200F_202D_206C_206E_206B_200B_206D_206B_202E(zoneBoundary), flag ? zoneBoundaryPositionOverride.PositionB : zoneBoundaryPositionOverride.PositionA);
num = -397486009;
break;
}
case 1:
current3 = enumerator3.Current;
num = (array[current3.Item2] ? (-397486009) : (-397486010));
break;
case 0:
goto end_IL_02f4;
}
continue;
end_IL_02f4:
break;
}
}
finally
{
num = ((enumerator3 == null) ? 386803249 : 386803248);
while (true)
{
int num13 = num;
int num3 = 386803249;
int num4 = num13;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
num = 386803248;
break;
case 0:
goto end_IL_0476;
case 1:
_206C_206E_202B_206F_206C_206F_202B_206E_206C_200B_200B_206E_206E_202C_206E_202D_200B_202D_202B_202C_200F_202B_200F_206E_206B_206D_206E_206D_206C_200F_200D_200E_206C_206B_206C_202D_206A_206C_200C_206C_202E((IDisposable)enumerator3);
num = 386803249;
break;
}
continue;
end_IL_0476:
break;
}
}
num14 = 0;
num = -1707302670;
}
else
{
num = -1707302671;
}
while (true)
{
int num15 = num;
int num3 = -1707302671;
int num4 = num15;
switch ((num4 | num3) - (num4 & num3))
{
default:
continue;
case 5:
num = -1707302670;
continue;
case 2:
break;
case 1:
{
int num19 = num14;
num3 = 1;
num4 = num19;
int num20 = num4 ^ num3;
int num21 = num4 & num3;
num14 = num20 + (num21 + num21);
num = -1707302670;
continue;
}
case 4:
num = (array2[num14] ? (-1707302672) : (-1707302665));
continue;
case 3:
num = ((num14 < list.Count) ? (-1707302667) : (-1707302669));
continue;
case 6:
{
int num16 = num7;
num3 = 1;
num4 = num16;
int num17 = num4 ^ num3;
int num18 = num4 & num3;
num7 = num17 + (num18 + num18);
num = -1707302672;
continue;
}
case 0:
goto end_IL_04d1;
}
goto IL_0519;
continue;
end_IL_04d1:
break;
}
break;
}
}
finally
{
num = ((enumerator2 == null) ? (-284585100) : (-284585099));
while (true)
{
int num22 = num;
int num3 = -284585100;
int num4 = num22;
int num23 = num4 + num3;
int num24 = num4 & num3;
switch (num23 - (num24 + num24))
{
case 0:
goto end_IL_05df;
case 1:
_206C_206E_202B_206F_206C_206F_202B_206E_206C_200B_200B_206E_206E_202C_206E_202D_200B_202D_202B_202C_200F_202B_200F_206E_206B_206D_206E_206D_206C_200F_200D_200E_206C_206B_206C_202D_206A_206C_200C_206C_202E((IDisposable)enumerator2);
num = -284585100;
break;
case 2:
num = -284585099;
break;
}
continue;
end_IL_05df:
break;
}
}
num = ((num7 <= 0) ? 1969313430 : 1969313429);
while (true)
{
int num25 = num;
int num3 = 1969313428;
int num4 = num25;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = 1969313429;
break;
case 2:
return;
case 1:
_200D_206A_206E_206E_202D_206D_206C_202A_200E_202B_200D_200E_206A_200C_202E_206D_202E_200B_200B_206A_200B_206D_206E_202E_200D_202C_200E_200B_200B_206F_206E_206E_200F_202D_200B_200B_206E_206F_206C_202B_202E(logger, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1309944593), new object[1] { num7 });
num = 1969313430;
break;
}
}
static (ushort, ushort) PairKey(ushort a, ushort b)
{
int num26 = ((a <= b) ? 1834815279 : 1834815278);
while (true)
{
int num27 = num26;
int num28 = 1834815279;
int num29 = num27;
int num30 = num29 + num28;
int num31 = num29 & num28;
switch (num30 - (num31 + num31))
{
case 2:
goto IL_0044;
case 1:
return (b, a);
case 0:
return (a, b);
}
continue;
IL_0044:
num26 = 1834815278;
}
}
}
private static TriggerBox? TriggerOf(ExitRangeEntry exit)
{
int num = ((exit.HalfExtents == Vector3.Zero) ? 1355373667 : 1355373664);
while (true)
{
int num2 = num;
int num3 = 1355373666;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
goto IL_0052;
case 1:
return null;
case 2:
return _202A_200B_206C_200F_202B_206B_200C_202D_202D_202D_200B_206E_206F_202C_206F_206D_202B_200E_206A_206D_206A_206A_206C_206C_202E_202D_202C_206B_206B_200C_202A_206A_202B_200B_206E_206A_206A_202C_200C_200D_202E(exit.SourcePosition, exit.Rotation, exit.HalfExtents);
}
continue;
IL_0052:
num = 1355373664;
}
}
private static float OverrideDistance(ZoneBoundary gate, ZoneBoundaryPositionOverride ovr)
{
int num = ((_202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(_206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(gate)) == ovr.TerritoryA) ? (-1856097741) : (-1856097744));
while (true)
{
int num2 = num;
int num3 = -1856097743;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
goto IL_0053;
case 1:
return Vector3.Distance(_202B_200F_206F_202D_200E_206B_206F_206F_202B_200D_202B_202D_202B_202A_206E_206E_200F_206E_206A_206E_202D_200D_202B_206F_200F_206C_200E_206D_200F_202E_206C_202C_200F_202E_206F_200B_200E_206C_206E_202C_202E(_206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(gate)), ovr.PositionB) + Vector3.Distance(_202B_200F_206F_202D_200E_206B_206F_206F_202B_200D_202B_202D_202B_202A_206E_206E_200F_206E_206A_206E_202D_200D_202B_206F_200F_206C_200E_206D_200F_202E_206C_202C_200F_202E_206F_200B_200E_206C_206E_202C_202E(_206E_206F_202C_202D_200E_202C_200B_206D_206C_206F_202A_206E_200D_206D_202B_200E_200E_200D_202C_202D_206B_202A_202B_200B_200B_202B_202C_206A_202A_206A_206E_202D_200F_202D_206C_206E_206B_200B_206D_206B_202E(gate)), ovr.PositionA);
case 2:
return Vector3.Distance(_202B_200F_206F_202D_200E_206B_206F_206F_202B_200D_202B_202D_202B_202A_206E_206E_200F_206E_206A_206E_202D_200D_202B_206F_200F_206C_200E_206D_200F_202E_206C_202C_200F_202E_206F_200B_200E_206C_206E_202C_202E(_206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(gate)), ovr.PositionA) + Vector3.Distance(_202B_200F_206F_202D_200E_206B_206F_206F_202B_200D_202B_202D_202B_202A_206E_206E_200F_206E_206A_206E_202D_200D_202B_206F_200F_206C_200E_206D_200F_202E_206C_202C_200F_202E_206F_200B_200E_206C_206E_202C_202E(_206E_206F_202C_202D_200E_202C_200B_206D_206C_206F_202A_206E_200D_206D_202B_200E_200E_200D_202C_202D_206B_202A_202B_200B_200B_202B_202C_206A_202A_206A_206E_202D_200F_202D_206C_206E_206B_200B_206D_206B_202E(gate)), ovr.PositionB);
}
continue;
IL_0053:
num = -1856097744;
}
}
[CompilerGenerated]
internal static (ushort, ushort) _003CApplyOverrides_003Eg__PairKey_007C1_0(ushort a, ushort b)
{
int num = ((a <= b) ? 1834815279 : 1834815278);
while (true)
{
int num2 = num;
int num3 = 1834815279;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
goto IL_0044;
case 1:
return (b, a);
case 0:
return (a, b);
}
continue;
IL_0044:
num = 1834815278;
}
}
static bool _202D_202B_200E_200D_200F_206B_200E_202A_206C_200F_200C_202B_202A_200E_206D_206C_200D_202D_206D_206B_206A_200D_206C_200D_206A_202C_202A_206B_206E_206B_200D_202C_200F_206C_206E_202C_206B_206D_200F_206A_202E(IEnumerator P_0)
{
return P_0.MoveNext();
}
static void _206C_206E_202B_206F_206C_206F_202B_206E_206C_200B_200B_206E_206E_202C_206E_202D_200B_202D_202B_202C_200F_202B_200F_206E_206B_206D_206E_206D_206C_200F_200D_200E_206C_206B_206C_202D_206A_206C_200C_206C_202E(IDisposable P_0)
{
P_0.Dispose();
}
static ZoneBoundary _202E_200D_206B_202D_206A_206B_200F_202B_200B_206D_202C_206E_206F_206B_206B_202C_202E_202A_202B_200D_200B_200E_202A_202A_206F_202C_206F_206B_200C_200C_200C_206C_200B_202D_200D_206F_202D_200F_200B_206C_202E()
{
return new ZoneBoundary();
}
static void _202D_202C_206F_206A_202B_200E_206C_206C_206F_202B_202B_206B_206D_206F_206A_202E_202D_206A_200F_200B_206E_200B_200D_206C_206B_202C_202B_206D_206B_206A_202B_206E_202B_202E_202D_200E_200D_206A_200B_206B_202E(ZoneBoundary P_0, string P_1)
{
P_0.Id = P_1;
}
static BoundarySide _202A_202A_202B_206F_200B_200B_206A_206F_206A_202A_206A_200B_200B_200F_202B_206C_200C_206F_200B_206C_200E_200B_202A_200E_200C_200C_202A_200D_206F_206C_202D_202E_202B_202C_200B_200E_206B_202D_202D_206F_202E()
{
return new BoundarySide();
}
static void _202A_202A_200F_206F_206B_206B_206D_206B_200B_200B_206F_200D_206F_202D_200B_200F_202D_206A_202A_200B_206A_200F_206A_200B_200C_200B_202A_200C_206F_200C_200C_200C_202D_200F_200C_202E_202A_200D_202A_202A_202E(BoundarySide P_0, ushort P_1)
{
P_0.TerritoryId = P_1;
}
static void _200C_202D_200E_202A_202C_206D_200D_202C_200D_202E_202E_206B_206D_202E_202B_206A_200E_202A_202B_200F_202C_206C_206B_200B_200B_200D_202A_206A_206A_202E_200F_206B_206C_202E_200C_206A_200D_202A_202C_200D_202E(BoundarySide P_0, Vector3 P_1)
{
P_0.Position = P_1;
}
static void _200C_206F_200C_202B_206A_202A_206E_200F_202E_200E_202A_200D_200B_202D_200B_202A_202B_206B_206A_200B_206F_202C_202C_202C_202C_206D_202E_202E_200B_202A_206E_202B_206B_206A_202C_202E_202E_206F_206E_200F_202E(BoundarySide P_0, TriggerBox P_1)
{
P_0.Trigger = P_1;
}
static void _206E_206D_200C_200F_202C_202D_200F_206F_200D_206E_202E_202B_200D_206E_202D_200D_200B_202B_202B_202E_202E_200F_206F_200C_202A_200B_206B_202E_206A_202C_202D_206E_206F_202E_200F_200B_202D_206A_206C_200C_202E(ZoneBoundary P_0, BoundarySide P_1)
{
P_0.Side1 = P_1;
}
static void _206C_202E_202B_200D_202A_200C_200C_206A_200C_202C_206E_206A_200C_206F_206B_206E_206B_206E_206E_206E_206A_200E_200E_206D_206C_206F_200D_202A_202D_200E_202A_200C_200B_206E_200C_206C_200B_206A_200C_202A_202E(ZoneBoundary P_0, BoundarySide P_1)
{
P_0.Side2 = P_1;
}
static void _202D_202D_206F_202D_206F_202C_206C_202C_206D_206D_202C_206D_200B_206E_206A_202E_206E_202B_202A_206D_202E_206F_202D_200F_200D_206C_202B_200C_206A_206E_202C_206F_202D_202D_200F_202E_200C_202B_200F_200F_202E(ZoneBoundary P_0, bool P_1)
{
P_0.OneWay = P_1;
}
static BoundarySide _206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(ZoneBoundary P_0)
{
return P_0.Side1;
}
static ushort _202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(BoundarySide P_0)
{
return P_0.TerritoryId;
}
static BoundarySide _206E_206F_202C_202D_200E_202C_200B_206D_206C_206F_202A_206E_200D_206D_202B_200E_200E_200D_202C_202D_206B_202A_202B_200B_200B_202B_202C_206A_202A_206A_206E_202D_200F_202D_206C_206E_206B_200B_206D_206B_202E(ZoneBoundary P_0)
{
return P_0.Side2;
}
static void _202D_200E_200D_200C_206C_200C_200E_202E_206E_202A_200B_200C_206A_200E_206B_200C_200E_200C_200B_206E_206A_206D_202E_200B_200B_202B_202D_206D_202E_202A_202C_200C_206F_202E_206C_202D_202D_206F_206E_206F_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogDebug(P_1, P_2);
}
static void _200D_206A_206E_206E_202D_206D_206C_202A_200E_202B_200D_200E_206A_200C_202E_206D_202E_200B_200B_206A_200B_206D_206E_202E_200D_202C_200E_200B_200B_206F_206E_206E_200F_202D_200B_200B_206E_206F_206C_202B_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogWarning(P_1, P_2);
}
static void _206D_200F_200E_202B_202D_200F_206D_200C_200C_200E_206E_202C_202D_206A_206C_200F_200E_206C_206A_206F_206A_200C_206E_206D_202B_206F_200C_206E_200C_202A_202C_206A_200D_206C_200C_206B_200D_202A_200C_206E_202E(ZoneBoundary P_0, bool P_1)
{
P_0.RequiresFlying = P_1;
}
static TriggerBox _202A_200B_206C_200F_202B_206B_200C_202D_202D_202D_200B_206E_206F_202C_206F_206D_202B_200E_206A_206D_206A_206A_206C_206C_202E_202D_202C_206B_206B_200C_202A_206A_202B_200B_206E_206A_206A_202C_200C_200D_202E(Vector3 P_0, Vector3 P_1, Vector3 P_2)
{
return new TriggerBox(P_0, P_1, P_2);
}
static Vector3 _202B_200F_206F_202D_200E_206B_206F_206F_202B_200D_202B_202D_202B_202A_206E_206E_200F_206E_206A_206E_202D_200D_202B_206F_200F_206C_200E_206D_200F_202E_206C_202C_200F_202E_206F_200B_200E_206C_206E_202C_202E(BoundarySide P_0)
{
return P_0.Position;
}
}

View file

@ -0,0 +1,90 @@
using System.Collections.Generic;
using System.Numerics;
namespace SmartNav.Data;
internal static class ZoneBoundaryOverrides
{
public static readonly IReadOnlyCollection<(ushort TerritoryA, ushort TerritoryB)> FlyingPairs = new global::_003C_003Ez__ReadOnlyArray<(ushort, ushort)>(new(ushort, ushort)[2]
{
(401, 419),
(397, 401)
});
public static readonly IReadOnlyList<ZoneBoundaryPositionOverride> PositionOverrides = new global::_003C_003Ez__ReadOnlyArray<ZoneBoundaryPositionOverride>(new ZoneBoundaryPositionOverride[73]
{
new ZoneBoundaryPositionOverride(128, 129, new Vector3(-74f, 39.246f, -121f), new Vector3(-84f, 18f, -28f)),
new ZoneBoundaryPositionOverride(128, 129, new Vector3(-7f, 42.586f, -27f), new Vector3(-7f, 20.667f, 28f)),
new ZoneBoundaryPositionOverride(128, 129, new Vector3(-96f, 35.5f, 102f), new Vector3(-90f, 21.988f, 116f)),
new ZoneBoundaryPositionOverride(129, 134, new Vector3(65f, 19.75f, 0f), new Vector3(-53f, 33.768f, 159f)),
new ZoneBoundaryPositionOverride(128, 135, new Vector3(25f, 44.5f, 182f), new Vector3(-66f, 75.842f, 116f)),
new ZoneBoundaryPositionOverride(134, 138, new Vector3(-377f, 33.111f, -603f), new Vector3(814f, 49.229f, 397f)),
new ZoneBoundaryPositionOverride(134, 135, new Vector3(212f, 65.744f, 285f), new Vector3(229f, 74.737f, -343f)),
new ZoneBoundaryPositionOverride(134, 137, new Vector3(-163f, 35.996f, -736f), new Vector3(-116f, 70.246f, 48f)),
new ZoneBoundaryPositionOverride(135, 137, new Vector3(572f, 96.436f, -525f), new Vector3(-132f, 69.846f, 744f)),
new ZoneBoundaryPositionOverride(135, 137, new Vector3(695f, 80.076f, -390f), new Vector3(246f, 56.349f, 838f)),
new ZoneBoundaryPositionOverride(137, 139, new Vector3(78f, 80.429f, -120f), new Vector3(719f, 0.174f, 216f)),
new ZoneBoundaryPositionOverride(138, 139, new Vector3(412f, 31.556f, -12f), new Vector3(-478f, 2.01f, 289f)),
new ZoneBoundaryPositionOverride(139, 180, new Vector3(-340f, 48.85f, -18f), new Vector3(-325f, 50.2f, -81f)),
new ZoneBoundaryPositionOverride(139, 180, new Vector3(286f, 42.172f, -203f), new Vector3(246f, 53.046f, -251f)),
new ZoneBoundaryPositionOverride(132, 133, new Vector3(-105f, 1.287f, 7f), new Vector3(-127f, 5.299f, -36f)),
new ZoneBoundaryPositionOverride(132, 133, new Vector3(12f, 1.256f, -16f), new Vector3(13f, 8.372f, -86f)),
new ZoneBoundaryPositionOverride(132, 133, new Vector3(102f, 5.329f, 13f), new Vector3(138f, 10.897f, -20f)),
new ZoneBoundaryPositionOverride(132, 148, new Vector3(157f, -12.989f, 158f), new Vector3(129f, 25.16f, -318f)),
new ZoneBoundaryPositionOverride(133, 154, new Vector3(-211f, 10.226f, -96f), new Vector3(457f, -1.486f, 192f)),
new ZoneBoundaryPositionOverride(148, 152, new Vector3(387f, -3.319f, -186f), new Vector3(-514f, 19.031f, 278f)),
new ZoneBoundaryPositionOverride(148, 154, new Vector3(-502f, 74.232f, -356f), new Vector3(19f, -54.794f, 532f)),
new ZoneBoundaryPositionOverride(148, 153, new Vector3(160f, -23.874f, 552f), new Vector3(-369f, 29.987f, -244f)),
new ZoneBoundaryPositionOverride(152, 153, new Vector3(-160f, 4f, 451f), new Vector3(278f, 11.017f, -260f)),
new ZoneBoundaryPositionOverride(145, 153, new Vector3(371f, 32.883f, -298f), new Vector3(-287f, -0.348f, 700f)),
new ZoneBoundaryPositionOverride(154, 155, new Vector3(-370f, -4.539f, 184f), new Vector3(10f, 181.363f, 589f)),
new ZoneBoundaryPositionOverride(155, 156, new Vector3(-219f, 217.069f, 711f), new Vector3(127f, 31.384f, -773f)),
new ZoneBoundaryPositionOverride(147, 156, new Vector3(-96f, 84.427f, -417f), new Vector3(-419f, -3.217f, -116f)),
new ZoneBoundaryPositionOverride(130, 131, new Vector3(-119f, 9.829f, -9f), new Vector3(-112f, 7.526f, -9f)),
new ZoneBoundaryPositionOverride(130, 131, new Vector3(-119f, 9.831f, 9f), new Vector3(-111f, 7.194f, 9f)),
new ZoneBoundaryPositionOverride(130, 131, new Vector3(-11f, 10f, -40f), new Vector3(-9f, 10.288f, -33f)),
new ZoneBoundaryPositionOverride(130, 131, new Vector3(62f, 8.076f, -85f), new Vector3(64f, 8.076f, -83f)),
new ZoneBoundaryPositionOverride(130, 131, new Vector3(96f, 4f, -108f), new Vector3(92f, 4f, -111f)),
new ZoneBoundaryPositionOverride(130, 140, new Vector3(-182f, 14.006f, -14f), new Vector3(473f, 96.621f, 160f)),
new ZoneBoundaryPositionOverride(130, 141, new Vector3(44f, 4.01f, -165f), new Vector3(-117f, 18.366f, 340f)),
new ZoneBoundaryPositionOverride(131, 141, new Vector3(165f, 4.01f, 44f), new Vector3(12f, 18.365f, 564f)),
new ZoneBoundaryPositionOverride(140, 141, new Vector3(262f, 53.511f, -11f), new Vector3(-407f, -1.62f, 99f)),
new ZoneBoundaryPositionOverride(141, 145, new Vector3(451f, -18f, -180f), new Vector3(-567f, -18.959f, 340f)),
new ZoneBoundaryPositionOverride(141, 147, new Vector3(-28f, 33f, -496f), new Vector3(37f, 6.127f, 514f)),
new ZoneBoundaryPositionOverride(141, 146, new Vector3(234f, 2.751f, 675f), new Vector3(-429f, 12.863f, -428f)),
new ZoneBoundaryPositionOverride(145, 146, new Vector3(-169f, -46.446f, 491f), new Vector3(-28f, 17.296f, -769f)),
new ZoneBoundaryPositionOverride(397, 418, new Vector3(468f, 224.429f, 884f), new Vector3(-191f, 14.727f, -60f)),
new ZoneBoundaryPositionOverride(418, 419, new Vector3(-154f, 32.286f, -145f), new Vector3(-317f, -26.296f, -62f)),
new ZoneBoundaryPositionOverride(418, 419, new Vector3(-56f, 21.592f, -99f), new Vector3(-14f, -13.754f, -65f)),
new ZoneBoundaryPositionOverride(418, 419, new Vector3(52f, 30.716f, -83f), new Vector3(14f, -13.754f, -65f)),
new ZoneBoundaryPositionOverride(418, 419, new Vector3(158f, -19.477f, 53f), new Vector3(262f, -13.735f, -105f)),
new ZoneBoundaryPositionOverride(401, 419, new Vector3(-942f, -226.936f, -291f), new Vector3(175f, -14.501f, 43f)),
new ZoneBoundaryPositionOverride(401, 419, new Vector3(-633f, -224.093f, 860f), new Vector3(150f, -14.5f, 52f)),
new ZoneBoundaryPositionOverride(397, 401, new Vector3(455f, 130.8f, -915f), new Vector3(-890f, -227.259f, -889f)),
new ZoneBoundaryPositionOverride(397, 398, new Vector3(-852f, 117.683f, -658f), new Vector3(874f, -3.146f, 352f)),
new ZoneBoundaryPositionOverride(397, 399, new Vector3(-158f, 221.953f, 744f), new Vector3(766f, 290.146f, 507f)),
new ZoneBoundaryPositionOverride(398, 399, new Vector3(-803f, -122.91f, 578f), new Vector3(913f, 163.418f, 191f)),
new ZoneBoundaryPositionOverride(399, 478, new Vector3(-231f, 107.323f, -636f), new Vector3(71f, 205f, 147f)),
new ZoneBoundaryPositionOverride(399, 478, new Vector3(-545f, 156.293f, -522f), new Vector3(149f, 207f, 118f)),
new ZoneBoundaryPositionOverride(612, 635, new Vector3(486f, 61.699f, -559f), new Vector3(-31f, 12.681f, 167f)),
new ZoneBoundaryPositionOverride(620, 635, new Vector3(-662f, 51.124f, -795f), new Vector3(132f, -0.504f, -4f)),
new ZoneBoundaryPositionOverride(612, 620, new Vector3(853f, 85.714f, 366f), new Vector3(-795f, 296.793f, 215f)),
new ZoneBoundaryPositionOverride(620, 621, new Vector3(594f, 343.049f, 420f), new Vector3(-791f, 46.5f, -16f)),
new ZoneBoundaryPositionOverride(613, 628, new Vector3(881f, 1.179f, 883f), new Vector3(-137f, -7f, -59f)),
new ZoneBoundaryPositionOverride(613, 614, new Vector3(-829f, 20.259f, -261f), new Vector3(839f, 99.633f, -428f)),
new ZoneBoundaryPositionOverride(613, 622, new Vector3(-745f, -2.049f, -869f), new Vector3(544f, -21.838f, 703f)),
new ZoneBoundaryPositionOverride(614, 622, new Vector3(514f, 19.45f, -885f), new Vector3(-163f, 0.607f, 856f)),
new ZoneBoundaryPositionOverride(813, 819, new Vector3(836f, 37.693f, 407f), new Vector3(-246f, -3.09f, 0f)),
new ZoneBoundaryPositionOverride(813, 817, new Vector3(884f, 42.46f, -291f), new Vector3(-818f, 0.3f, 748f)),
new ZoneBoundaryPositionOverride(813, 815, new Vector3(536f, -5.653f, 868f), new Vector3(-621f, 60.577f, -678f)),
new ZoneBoundaryPositionOverride(813, 816, new Vector3(-325f, 116.469f, -839f), new Vector3(-696f, 111.428f, 841f)),
new ZoneBoundaryPositionOverride(814, 820, new Vector3(174f, 58.982f, 884f), new Vector3(0f, -17.306f, -166f)),
new ZoneBoundaryPositionOverride(957, 963, new Vector3(580f, 55.259f, -685f), new Vector3(102f, -32f, 228f)),
new ZoneBoundaryPositionOverride(1185, 1188, new Vector3(-300f, 0f, 130f), new Vector3(-286f, 14.085f, -856f)),
new ZoneBoundaryPositionOverride(1185, 1187, new Vector3(-272.321f, 1.7377548E-05f, 95.65973f), new Vector3(664f, -122.382f, -456f)),
new ZoneBoundaryPositionOverride(1187, 1188, new Vector3(734f, 72.722f, 638f), new Vector3(-900f, 143.041f, 475f)),
new ZoneBoundaryPositionOverride(1186, 1191, new Vector3(0f, -5.95f, 302f), new Vector3(-293f, 52.353f, -866f)),
new ZoneBoundaryPositionOverride(1190, 1191, new Vector3(-658f, 14.024f, -694f), new Vector3(657f, 147.219f, 758f)),
new ZoneBoundaryPositionOverride(1185, 1190, new Vector3(42.59336f, 47.072277f, -401.224f), new Vector3(285f, 15.741f, 807f))
});
}

View file

@ -0,0 +1,145 @@
using System;
using System.Collections.Generic;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Text;
namespace SmartNav.Data;
internal sealed record ZoneBoundaryPositionOverride(ushort TerritoryA, ushort TerritoryB, Vector3 PositionA, Vector3 PositionB)
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _202A_206A_200B_206E_206E_206B_200B_206A_200E_200B_206B_206A_206C_206C_206D_200D_206E_200E_200D_200C_202E_200B_202E_202A_200B_200C_200E_200B_200F_202C_206E_200C_200C_202B_206C_206D_202A_200C_200E_200C_202E(typeof(ZoneBoundaryPositionOverride).TypeHandle);
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _202A_202D_202A_206A_206F_206D_200B_206E_200C_206D_206A_200E_200F_200C_202B_202C_206A_206B_202A_206B_200B_206A_202D_206D_206A_206F_200D_202C_206B_206A_200D_200C_200C_206C_202D_200C_200B_200E_202C_202E_202E();
_206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(128434039));
_206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1547267250));
int num = ((!PrintMembers(stringBuilder)) ? 377403111 : 377403110);
while (true)
{
int num2 = num;
int num3 = 377403111;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
num = 377403110;
break;
case 1:
_200B_206D_206F_200B_200B_206F_202D_206A_200C_202E_202B_200F_200D_200C_200F_202C_206E_202D_206F_200D_202A_202D_206B_200B_200B_200E_202C_202C_206E_202B_200C_206E_206D_202E_202C_200D_200D_206E_206E_206E_202E(stringBuilder, ' ');
num = 377403111;
break;
case 0:
_200B_206D_206F_200B_200B_206F_202D_206A_200C_202E_202B_200F_200D_200C_200F_202C_206E_202D_206F_200D_202A_202D_206B_200B_200B_200E_202C_202C_206E_202B_200C_206E_206D_202E_202C_200D_200D_206E_206E_206E_202E(stringBuilder, '}');
return _206F_206A_202C_202C_206E_206D_202C_202C_200C_200C_200E_202B_206E_206E_202A_200D_206C_206D_206B_202C_202B_200B_200C_206F_206C_202D_200B_206C_202A_202C_202E_202E_206B_200B_200B_206D_206A_206B_200F_206E_202E((object)stringBuilder);
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_200D_206B_200F_200E_206C_202A_202A_200F_206F_200C_200C_202A_200B_202C_200D_202C_206E_202A_202D_202D_206E_200B_206C_200E_206D_202D_202D_206E_202C_206A_202E_200C_206A_200C_200E_206B_202B_206D_206B_202A_202E();
_206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1709044676));
_206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(builder, TerritoryA.ToString());
_206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(1792963311));
_206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(builder, TerritoryB.ToString());
_206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1559417746));
_206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(builder, PositionA.ToString());
_206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(900245019));
_206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(builder, PositionB.ToString());
return true;
}
[CompilerGenerated]
public bool Equals(ZoneBoundaryPositionOverride? other)
{
int num = (((object)this == other) ? 975251074 : 975251072);
while (true)
{
int num2 = num;
int num3 = 975251074;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 4:
num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryA, other.TerritoryA)) ? 975251073 : 975251077);
break;
case 7:
num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryB, other.TerritoryB)) ? 975251073 : 975251076);
break;
case 1:
num = ((!_202C_202A_200E_200C_206D_206A_206D_202C_206C_206A_200D_200C_202C_202B_202D_200E_202B_200D_202B_202C_202C_200C_200F_200B_202B_200C_202E_202D_202E_200E_200F_200F_202D_206B_206D_202C_206E_200E_206E_202A_202E(EqualityContract, other.EqualityContract)) ? 975251073 : 975251078);
break;
case 0:
return true;
case 2:
num = (((object)other == null) ? 975251073 : 975251075);
break;
case 5:
num = 975251072;
break;
case 8:
return EqualityComparer<Vector3>.Default.Equals(PositionB, other.PositionB);
case 3:
return false;
case 6:
num = ((!EqualityComparer<Vector3>.Default.Equals(PositionA, other.PositionA)) ? 975251073 : 975251082);
break;
}
}
}
bool IEquatable<ZoneBoundaryPositionOverride>.Equals(ZoneBoundaryPositionOverride? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type _202A_206A_200B_206E_206E_206B_200B_206A_200E_200B_206B_206A_206C_206C_206D_200D_206E_200E_200D_200C_202E_200B_202E_202A_200B_200C_200E_200B_200F_202C_206E_200C_200C_202B_206C_206D_202A_200C_200E_200C_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder _202A_202D_202A_206A_206F_206D_200B_206E_200C_206D_206A_200E_200F_200C_202B_202C_206A_206B_202A_206B_200B_206A_202D_206D_206A_206F_200D_202C_206B_206A_200D_200C_200C_206C_202D_200C_200B_200E_202C_202E_202E()
{
return new StringBuilder();
}
static StringBuilder _206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _200B_206D_206F_200B_200B_206F_202D_206A_200C_202E_202B_200F_200D_200C_200F_202C_206E_202D_206F_200D_202A_202D_206B_200B_200B_200E_202C_202C_206E_202B_200C_206E_206D_202E_202C_200D_200D_206E_206E_206E_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _206F_206A_202C_202C_206E_206D_202C_202C_200C_200C_200E_202B_206E_206E_202A_200D_206C_206D_206B_202C_202B_200B_200C_206F_206C_202D_200B_206C_202A_202C_202E_202E_206B_200B_200B_206D_206A_206B_200F_206E_202E(object P_0)
{
return P_0.ToString();
}
static void _200D_206B_200F_200E_206C_202A_202A_200F_206F_200C_200C_202A_200B_202C_200D_202C_206E_202A_202D_202D_206E_200B_206C_200E_206D_202D_202D_206E_202C_206A_202E_200C_206A_200C_200E_206B_202B_206D_206B_202A_202E()
{
RuntimeHelpers.EnsureSufficientExecutionStack();
}
static bool _202C_202A_200E_200C_206D_206A_206D_202C_206C_206A_200D_200C_202C_202B_202D_200E_202B_200D_202B_202C_202C_200C_200F_200B_202B_200C_202E_202D_202E_200E_200F_200F_202D_206B_206D_202C_206E_200E_206E_202A_202E(Type P_0, Type P_1)
{
return P_0 == P_1;
}
}

View file

@ -0,0 +1,199 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Runtime.CompilerServices;
using Microsoft.Extensions.Logging;
using SmartNav.Model.Navigation;
namespace SmartNav.Data;
public sealed class ZoneSubRegionService
{
private readonly Dictionary<uint, TerritorySubRegions> _regions = new Dictionary<uint, TerritorySubRegions>();
public IReadOnlyDictionary<uint, TerritorySubRegions> AllRegions => _regions;
[MethodImpl(MethodImplOptions.NoInlining)]
public ZoneSubRegionService(SmartNavDataOptions dataOptions, ILogger<ZoneSubRegionService> logger)
{
DirectoryInfo? devSourceDirectory = dataOptions.DevSourceDirectory;
IEnumerator<KeyValuePair<string, TerritorySubRegions>> enumerator = _206A_202C_202C_200B_206D_202D_200F_200F_200B_206E_200C_202B_200F_206E_206B_202E_202E_202C_200E_200E_206A_206D_202A_200C_200C_202D_206D_202E_200E_200C_206A_202E_200D_200F_202D_206A_206D_206F_200E_206C_202E((devSourceDirectory != null) ? _200D_202A_206E_200F_202A_206C_206B_206C_206E_206A_202C_206F_206B_202C_202E_206C_200C_200F_200F_200D_206A_206B_206F_206B_206D_202A_202E_200F_202C_206D_200B_206B_206A_200C_200F_202A_202A_200E_200C_202B_202E((FileSystemInfo)devSourceDirectory) : null).GetEnumerator();
try
{
while (_206A_200B_200B_206A_202C_202D_202D_202D_206F_206A_200F_206C_206F_202A_200D_202E_200D_200F_200B_200F_206D_202C_200E_200D_200B_206E_206B_206E_200E_206D_202E_200D_202C_206C_206C_202B_206B_206B_206B_206D_202E((IEnumerator)enumerator))
{
var (s, value) = (KeyValuePair<string, TerritorySubRegions>)(ref enumerator.Current);
if (uint.TryParse(s, out var result))
{
_regions[result] = value;
}
}
}
finally
{
if (enumerator != null)
{
_202E_202A_202C_202A_206F_202E_200B_206E_202D_206F_200D_202E_206D_202D_206A_206F_202B_200D_202C_202D_200D_200B_206A_200E_202C_206C_200D_202B_206D_202D_200D_202E_202A_202B_202A_206F_200D_206C_200E_206B_202E((IDisposable)enumerator);
}
}
_200E_202C_200B_200F_202C_200D_206B_200B_202A_206F_206B_202B_206F_200C_202E_200D_200B_202B_200C_206A_206D_206B_202A_202B_200C_200B_202D_206E_202D_202E_206E_206E_200B_200D_200F_200E_200E_206D_200E_200F_202E((ILogger)logger, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-1099723978), new object[1] { _regions.Count });
}
public bool HasSubRegions(uint territoryId)
{
return _regions.ContainsKey(territoryId);
}
[MethodImpl(MethodImplOptions.NoInlining)]
public string? GetSubRegionId(uint territoryId, float x, float y, float z)
{
int num = (_regions.TryGetValue(territoryId, out TerritorySubRegions value) ? 728841310 : 728841311);
SubRegionDefinition current = default(SubRegionDefinition);
while (true)
{
int num2 = num;
int num3 = 728841310;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
goto IL_0057;
case 1:
return null;
case 0:
{
using (List<SubRegionDefinition>.Enumerator enumerator = _206C_202E_200E_202E_206C_206D_206C_202E_202E_206A_200C_206F_206C_202A_202A_206A_200D_200F_206C_200D_202D_202B_206C_206F_200F_202D_206F_200E_202D_202E_202E_202D_202C_202E_202D_206E_200B_206B_202D_206A_202E(value).GetEnumerator())
{
num = 607334794;
while (true)
{
int num5 = num;
num3 = 607334794;
num4 = num5;
int num6 = num4 + num3;
int num7 = num4 & num3;
switch (num6 - (num7 + num7))
{
case 0:
num = (enumerator.MoveNext() ? 607334798 : 607334792);
break;
case 4:
current = enumerator.Current;
num = ((!_202E_200C_202A_206E_206C_202E_206F_202B_200F_202C_206E_202E_206D_200D_202B_200D_202C_206C_202B_206B_206A_202C_200D_200D_202B_202C_202D_200B_200C_200C_200D_202B_202B_202A_200F_206B_206F_206E_202D_202D_202E(current, x, y, z)) ? 607334794 : 607334795);
break;
case 3:
num = 607334794;
break;
case 1:
return _206D_200C_202E_206A_206F_200B_202D_202B_206D_206E_206E_200F_206C_206E_206E_200F_202D_206E_202E_206C_206E_202E_202B_202A_206E_206B_202C_202D_200E_202B_200F_206E_200B_202A_200C_206E_200C_202C_202B_200F_202E(current);
case 2:
goto end_IL_007d;
}
continue;
end_IL_007d:
break;
}
}
return global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1484802432);
}
}
continue;
IL_0057:
num = 728841311;
}
}
public IReadOnlyList<SubRegionDefinition>? GetSubRegions(uint territoryId)
{
TerritorySubRegions value;
int num = (_regions.TryGetValue(territoryId, out value) ? 1403983688 : 1403983691);
while (true)
{
int num2 = num;
int num3 = 1403983689;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
goto IL_004e;
case 2:
return null;
case 1:
return _206C_202E_200E_202E_206C_206D_206C_202E_202E_206A_200C_206F_206C_202A_202A_206A_200D_200F_206C_200D_202D_202B_206C_206F_200F_202D_206F_200E_202D_202E_202E_202D_202C_202E_202D_206E_200B_206B_202D_206A_202E(value);
}
continue;
IL_004e:
num = 1403983691;
}
}
public IReadOnlyList<SubRegionConnector>? GetConnectors(uint territoryId)
{
TerritorySubRegions value;
int num = (_regions.TryGetValue(territoryId, out value) ? 240767514 : 240767513);
while (true)
{
int num2 = num;
int num3 = 240767515;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
goto IL_004e;
case 1:
return _202B_202E_206A_206C_202D_200B_202B_206A_202E_200E_200C_206D_206D_200E_206C_206E_206D_200D_206F_206C_206D_202D_200E_206F_202E_202E_200E_200F_202A_202E_206D_202A_200F_202E_200D_202A_206A_202D_202A_206E_202E(value);
case 2:
return null;
}
continue;
IL_004e:
num = 240767513;
}
}
static string _200D_202A_206E_200F_202A_206C_206B_206C_206E_206A_202C_206F_206B_202C_202E_206C_200C_200F_200F_200D_206A_206B_206F_206B_206D_202A_202E_200F_202C_206D_200B_206B_206A_200C_200F_202A_202A_200E_200C_202B_202E(FileSystemInfo P_0)
{
return P_0.FullName;
}
static IReadOnlyDictionary<string, TerritorySubRegions> _206A_202C_202C_200B_206D_202D_200F_200F_200B_206E_200C_202B_200F_206E_206B_202E_202E_202C_200E_200E_206A_206D_202A_200C_200C_202D_206D_202E_200E_200C_206A_202E_200D_200F_202D_206A_206D_206F_200E_206C_202E(string P_0)
{
return AssemblyZoneSubRegionLoader.GetRegions(P_0);
}
static bool _206A_200B_200B_206A_202C_202D_202D_202D_206F_206A_200F_206C_206F_202A_200D_202E_200D_200F_200B_200F_206D_202C_200E_200D_200B_206E_206B_206E_200E_206D_202E_200D_202C_206C_206C_202B_206B_206B_206B_206D_202E(IEnumerator P_0)
{
return P_0.MoveNext();
}
static void _202E_202A_202C_202A_206F_202E_200B_206E_202D_206F_200D_202E_206D_202D_206A_206F_202B_200D_202C_202D_200D_200B_206A_200E_202C_206C_200D_202B_206D_202D_200D_202E_202A_202B_202A_206F_200D_206C_200E_206B_202E(IDisposable P_0)
{
P_0.Dispose();
}
static void _200E_202C_200B_200F_202C_200D_206B_200B_202A_206F_206B_202B_206F_200C_202E_200D_200B_202B_200C_206A_206D_206B_202A_202B_200C_200B_202D_206E_202D_202E_206E_206E_200B_200D_200F_200E_200E_206D_200E_200F_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogDebug(P_1, P_2);
}
static List<SubRegionDefinition> _206C_202E_200E_202E_206C_206D_206C_202E_202E_206A_200C_206F_206C_202A_202A_206A_200D_200F_206C_200D_202D_202B_206C_206F_200F_202D_206F_200E_202D_202E_202E_202D_202C_202E_202D_206E_200B_206B_202D_206A_202E(TerritorySubRegions P_0)
{
return P_0.SubRegions;
}
static bool _202E_200C_202A_206E_206C_202E_206F_202B_200F_202C_206E_202E_206D_200D_202B_200D_202C_206C_202B_206B_206A_202C_200D_200D_202B_202C_202D_200B_200C_200C_200D_202B_202B_202A_200F_206B_206F_206E_202D_202D_202E(SubRegionDefinition P_0, float P_1, float P_2, float P_3)
{
return P_0.Contains(P_1, P_2, P_3);
}
static string _206D_200C_202E_206A_206F_200B_202D_202B_206D_206E_206E_200F_206C_206E_206E_200F_202D_206E_202E_206C_206E_202E_202B_202A_206E_206B_202C_202D_200E_202B_200F_206E_200B_202A_200C_206E_200C_202C_202B_200F_202E(SubRegionDefinition P_0)
{
return P_0.Id;
}
static List<SubRegionConnector> _202B_202E_206A_206C_202D_200B_202B_206A_202E_200E_200C_206D_206D_200E_206C_206E_206D_200D_206F_206C_206D_202D_200E_206F_202E_202E_200E_200F_202A_202E_206D_202A_200F_202E_200D_202A_206A_202D_202A_206E_202E(TerritorySubRegions P_0)
{
return P_0.Connectors;
}
}

View file

@ -0,0 +1,156 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Text;
namespace SmartNav.Graph;
public sealed record NavEdge(string FromNodeId, string ToNodeId, NavEdgeType EdgeType, float TimeCostSeconds, int GilCost)
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _206E_200D_200E_206F_200E_206D_206A_200E_206A_202E_202A_202C_206F_206D_200E_200E_202C_206F_200E_206C_202D_200F_206D_200E_206A_206F_202A_206F_202A_206D_202B_200D_206B_206E_200E_200C_206A_206D_200E_200D_202E(typeof(NavEdge).TypeHandle);
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _202E_206C_206D_200D_200B_206C_200D_200B_200F_200E_202E_206B_206A_206A_206D_206C_200D_206B_206A_200F_202B_202E_200F_202E_202B_202C_206A_200E_200F_206E_202B_206A_200F_202E_206B_206C_200C_206D_206F_202B_202E();
_202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-524076477));
_202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-979564187));
int num = ((!PrintMembers(stringBuilder)) ? 1302447791 : 1302447790);
while (true)
{
int num2 = num;
int num3 = 1302447791;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
num = 1302447790;
break;
case 0:
_206A_206F_202C_202A_200C_206B_202B_202A_206A_202E_202B_200C_202D_200D_202D_206E_206F_206D_200B_202C_200C_202D_206D_200E_202B_200C_200C_200F_202C_202C_206E_200C_206E_202A_202E_202D_206F_200C_202B_202E_202E(stringBuilder, '}');
return _206F_202B_200C_200E_206F_206D_202A_200F_200C_202D_200E_206B_206E_200B_206B_206F_206E_200F_206E_206C_200D_206F_206F_206C_202A_200D_200C_206D_206E_200E_206E_202E_202D_206B_200C_206C_206A_202D_206F_206E_202E((object)stringBuilder);
case 1:
_206A_206F_202C_202A_200C_206B_202B_202A_206A_202E_202B_200C_202D_200D_202D_206E_206F_206D_200B_202C_200C_202D_206D_200E_202B_200C_200C_200F_202C_202C_206E_200C_206E_202A_202E_202D_206F_200C_202B_202E_202E(stringBuilder, ' ');
num = 1302447791;
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_200C_202C_206D_202B_202A_206C_206C_202A_200E_202B_206E_202D_202A_206B_202D_202D_206B_206A_202B_206F_206B_206A_206C_200C_202A_206B_206E_202A_206B_200C_200E_200C_206C_202A_202C_202C_200B_200C_200E_206B_202E();
_202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-117326766));
_200B_200F_200E_206A_206B_202A_206E_206C_200B_202B_206D_200B_202A_202C_206A_200B_206E_206A_200D_202B_206D_200E_206C_200D_200D_200E_206F_206B_206F_202B_206E_202D_206E_206B_206F_200E_200E_206D_206F_200C_202E(builder, (object)FromNodeId);
_202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(1889543298));
_200B_200F_200E_206A_206B_202A_206E_206C_200B_202B_206D_200B_202A_202C_206A_200B_206E_206A_200D_202B_206D_200E_206C_200D_200D_200E_206F_206B_206F_202B_206E_202D_206E_206B_206F_200E_200E_206D_206F_200C_202E(builder, (object)ToNodeId);
_202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(323881500));
_202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(builder, EdgeType.ToString());
_202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(682092795));
_202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(builder, TimeCostSeconds.ToString());
_202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-492476942));
_202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(builder, GilCost.ToString());
return true;
}
[CompilerGenerated]
public bool Equals(NavEdge? other)
{
int num = (((object)this == other) ? 1316647872 : 1316647875);
while (true)
{
int num2 = num;
int num3 = 1316647876;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 8:
num = ((!EqualityComparer<string>.Default.Equals(ToNodeId, other.ToNodeId)) ? 1316647876 : 1316647877);
break;
case 7:
num = (((object)other == null) ? 1316647876 : 1316647874);
break;
case 5:
num = ((!EqualityComparer<string>.Default.Equals(FromNodeId, other.FromNodeId)) ? 1316647876 : 1316647884);
break;
case 6:
num = ((!_200F_206D_202D_206A_202D_202E_200C_200F_206F_200B_206A_202B_200C_202D_202A_206C_202B_202C_200D_202E_202B_200C_206A_206A_206A_200B_206C_202B_206C_200E_206D_206B_202E_200E_202A_200B_202C_206B_202B_202D_202E(EqualityContract, other.EqualityContract)) ? 1316647876 : 1316647873);
break;
case 1:
num = ((!EqualityComparer<NavEdgeType>.Default.Equals(EdgeType, other.EdgeType)) ? 1316647876 : 1316647885);
break;
case 4:
return true;
case 3:
return EqualityComparer<int>.Default.Equals(GilCost, other.GilCost);
case 9:
num = ((!EqualityComparer<float>.Default.Equals(TimeCostSeconds, other.TimeCostSeconds)) ? 1316647876 : 1316647879);
break;
case 2:
num = 1316647875;
break;
case 0:
return false;
}
}
}
bool IEquatable<NavEdge>.Equals(NavEdge? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type _206E_200D_200E_206F_200E_206D_206A_200E_206A_202E_202A_202C_206F_206D_200E_200E_202C_206F_200E_206C_202D_200F_206D_200E_206A_206F_202A_206F_202A_206D_202B_200D_206B_206E_200E_200C_206A_206D_200E_200D_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder _202E_206C_206D_200D_200B_206C_200D_200B_200F_200E_202E_206B_206A_206A_206D_206C_200D_206B_206A_200F_202B_202E_200F_202E_202B_202C_206A_200E_200F_206E_202B_206A_200F_202E_206B_206C_200C_206D_206F_202B_202E()
{
return new StringBuilder();
}
static StringBuilder _202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _206A_206F_202C_202A_200C_206B_202B_202A_206A_202E_202B_200C_202D_200D_202D_206E_206F_206D_200B_202C_200C_202D_206D_200E_202B_200C_200C_200F_202C_202C_206E_200C_206E_202A_202E_202D_206F_200C_202B_202E_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _206F_202B_200C_200E_206F_206D_202A_200F_200C_202D_200E_206B_206E_200B_206B_206F_206E_200F_206E_206C_200D_206F_206F_206C_202A_200D_200C_206D_206E_200E_206E_202E_202D_206B_200C_206C_206A_202D_206F_206E_202E(object P_0)
{
return P_0.ToString();
}
static void _200C_202C_206D_202B_202A_206C_206C_202A_200E_202B_206E_202D_202A_206B_202D_202D_206B_206A_202B_206F_206B_206A_206C_200C_202A_206B_206E_202A_206B_200C_200E_200C_206C_202A_202C_202C_200B_200C_200E_206B_202E()
{
RuntimeHelpers.EnsureSufficientExecutionStack();
}
static StringBuilder _200B_200F_200E_206A_206B_202A_206E_206C_200B_202B_206D_200B_202A_202C_206A_200B_206E_206A_200D_202B_206D_200E_206C_200D_200D_200E_206F_206B_206F_202B_206E_202D_206E_206B_206F_200E_200E_206D_206F_200C_202E(StringBuilder P_0, object P_1)
{
return P_0.Append(P_1);
}
static bool _200F_206D_202D_206A_202D_202E_200C_200F_206F_200B_206A_202B_200C_202D_202A_206C_202B_202C_200D_202E_202B_200C_206A_206A_206A_200B_206C_202B_206C_200E_206D_206B_202E_200E_202A_200B_202C_206B_202B_202D_202E(Type P_0, Type P_1)
{
return P_0 == P_1;
}
}

View file

@ -0,0 +1,14 @@
namespace SmartNav.Graph;
public enum NavEdgeType
{
Teleport,
WithinZone,
AethernetHop,
ZoneBoundary,
Warp,
ChocoboTaxi,
Return,
SubRegionTransport,
TicketTeleport
}

View file

@ -0,0 +1,303 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
namespace SmartNav.Graph;
public sealed class NavGraph
{
[CompilerGenerated]
private sealed class _003C_003Ec__DisplayClass11_0
{
public NavEdge edge;
internal bool _003CReplaceEdge_003Eb__0(NavEdge e)
{
int num = ((!_206D_200B_200F_202D_206A_206D_206E_202E_200C_202D_200B_206A_206D_200B_206B_200E_202B_202C_202C_202B_200F_206A_202A_202C_202C_200F_206D_202C_200F_206E_200B_200C_206B_202A_202A_206D_206C_200C_200B_206D_202E(e.ToNodeId, edge.ToNodeId)) ? 1864125654 : 1864125653);
while (true)
{
int num2 = num;
int num3 = 1864125655;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
goto IL_0056;
case 2:
return e.EdgeType == edge.EdgeType;
case 1:
return false;
}
continue;
IL_0056:
num = 1864125653;
}
}
static bool _206D_200B_200F_202D_206A_206D_206E_202E_200C_202D_200B_206A_206D_200B_206B_200E_202B_202C_202C_202B_200F_206A_202A_202C_202C_200F_206D_202C_200F_206E_200B_200C_206B_202A_202A_206D_206C_200C_200B_206D_202E(string P_0, string P_1)
{
return P_0 == P_1;
}
}
private readonly Dictionary<string, NavNode> _nodes = new Dictionary<string, NavNode>();
private readonly Dictionary<string, List<NavEdge>> _adjacency = new Dictionary<string, List<NavEdge>>();
private readonly Dictionary<uint, List<string>> _territoryIndex = new Dictionary<uint, List<string>>();
public IReadOnlyDictionary<string, NavNode> Nodes => _nodes;
public IReadOnlyDictionary<string, List<NavEdge>> Adjacency => _adjacency;
public IReadOnlyDictionary<uint, List<string>> TerritoryIndex => _territoryIndex;
public int NodeCount => _nodes.Count;
public int EdgeCount
{
get
{
int num = 0;
using Dictionary<string, List<NavEdge>>.ValueCollection.Enumerator enumerator = _adjacency.Values.GetEnumerator();
int num2 = 165728447;
while (true)
{
int num3 = num2;
int num4 = 165728444;
int num5 = num3;
int num6 = num5 + num4;
int num7 = num5 & num4;
switch (num6 - (num7 + num7))
{
case 3:
num2 = (enumerator.MoveNext() ? 165728445 : 165728446);
break;
case 1:
{
List<NavEdge> current = enumerator.Current;
num += current.Count;
num2 = 165728447;
break;
}
case 0:
num2 = 165728447;
break;
case 2:
return num;
}
}
}
}
public void AddNode(NavNode node)
{
bool num = !_nodes.ContainsKey(node.Id);
_nodes[node.Id] = node;
int num2 = ((!num) ? (-2079391440) : (-2079391437));
List<string> value = default(List<string>);
while (true)
{
int num3 = num2;
int num4 = -2079391439;
int num5 = num3;
switch ((num5 | num4) - (num5 & num4))
{
case 0:
num2 = -2079391437;
break;
case 4:
value.Add(node.Id);
num2 = -2079391440;
break;
case 3:
value = new List<string>();
_territoryIndex[node.TerritoryId] = value;
num2 = -2079391435;
break;
case 2:
_adjacency[node.Id] = new List<NavEdge>();
num2 = (_territoryIndex.TryGetValue(node.TerritoryId, out value) ? (-2079391435) : (-2079391438));
break;
case 1:
return;
}
}
}
public void AddEdge(NavEdge edge)
{
List<NavEdge> value;
int num = (_adjacency.TryGetValue(edge.FromNodeId, out value) ? (-2081875728) : (-2081875725));
while (true)
{
int num2 = num;
int num3 = -2081875726;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = -2081875725;
break;
case 2:
value.Add(edge);
return;
case 1:
value = new List<NavEdge>();
_adjacency[edge.FromNodeId] = value;
num = -2081875728;
break;
}
}
}
public void ReplaceEdge(NavEdge edge)
{
List<NavEdge> value;
int num = (_adjacency.TryGetValue(edge.FromNodeId, out value) ? (-1414739437) : (-1414739440));
while (true)
{
int num2 = num;
int num3 = -1414739438;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 1:
value.RemoveAll(delegate(NavEdge e)
{
int num5 = ((!_003C_003Ec__DisplayClass11_0._206D_200B_200F_202D_206A_206D_206E_202E_200C_202D_200B_206A_206D_200B_206B_200E_202B_202C_202C_202B_200F_206A_202A_202C_202C_200F_206D_202C_200F_206E_200B_200C_206B_202A_202A_206D_206C_200C_200B_206D_202E(e.ToNodeId, edge.ToNodeId)) ? 1864125654 : 1864125653);
while (true)
{
int num6 = num5;
int num7 = 1864125655;
int num8 = num6;
switch ((num8 | num7) - (num8 & num7))
{
case 0:
goto IL_0056;
case 2:
return e.EdgeType == edge.EdgeType;
case 1:
return false;
}
continue;
IL_0056:
num5 = 1864125653;
}
});
value.Add(edge);
return;
case 2:
value = new List<NavEdge>();
_adjacency[edge.FromNodeId] = value;
num = -1414739437;
break;
case 0:
num = -1414739440;
break;
}
}
}
public void RemoveEdges(string fromNodeId, Predicate<NavEdge> predicate)
{
List<NavEdge> value;
int num = ((!_adjacency.TryGetValue(fromNodeId, out value)) ? 1405127907 : 1405127904);
while (true)
{
int num2 = num;
int num3 = 1405127906;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
num = 1405127904;
break;
case 1:
return;
case 2:
value.RemoveAll(predicate);
num = 1405127907;
break;
}
}
}
public NavNode? GetNode(string nodeId)
{
NavNode value;
int num = (_nodes.TryGetValue(nodeId, out value) ? 640244294 : 640244295);
while (true)
{
int num2 = num;
int num3 = 640244294;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
return value;
case 1:
return null;
case 2:
goto IL_0054;
}
continue;
IL_0054:
num = 640244295;
}
}
public IReadOnlyList<NavEdge> GetEdges(string nodeId)
{
List<NavEdge> value;
int num = (_adjacency.TryGetValue(nodeId, out value) ? 577743021 : 577743022);
while (true)
{
int num2 = num;
int num3 = 577743023;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
return value;
case 1:
return new List<NavEdge>();
case 0:
goto IL_0058;
}
continue;
IL_0058:
num = 577743022;
}
}
public IReadOnlyList<string> GetNodesInTerritory(uint territoryId)
{
List<string> value;
int num = (_territoryIndex.TryGetValue(territoryId, out value) ? 111271957 : 111271958);
while (true)
{
int num2 = num;
int num3 = 111271959;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
goto IL_004e;
case 1:
return new List<string>();
case 2:
return value;
}
continue;
IL_004e:
num = 111271958;
}
}
}

File diff suppressed because it is too large Load diff

41
SmartNav/SmartNav.csproj Normal file
View file

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<AssemblyName>SmartNav</AssemblyName>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<TargetFramework>netcoreapp1.0</TargetFramework>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<PropertyGroup>
<LangVersion>12.0</LangVersion>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup />
<ItemGroup />
<ItemGroup>
<Reference Include="SmartNav.Model">
<HintPath>..\..\SmartNav.Model.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Abstractions">
<HintPath>..\..\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Dalamud">
<HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\Dalamud.dll</HintPath>
</Reference>
<Reference Include="Lumina.Excel">
<HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\Lumina.Excel.dll</HintPath>
</Reference>
<Reference Include="LLib">
<HintPath>..\..\LLib.dll</HintPath>
</Reference>
<Reference Include="Lumina">
<HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\Lumina.dll</HintPath>
</Reference>
<Reference Include="FFXIVClientStructs">
<HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\FFXIVClientStructs.dll</HintPath>
</Reference>
<Reference Include="SmartNav.Data">
<HintPath>..\..\SmartNav.Data.dll</HintPath>
</Reference>
</ItemGroup>
</Project>

View file

@ -0,0 +1,83 @@
using System;
using System.Numerics;
using SmartNav.Model;
namespace SmartNav;
public sealed class CostCalculator(ITerritoryInfo territoryInfo)
{
public float EstimateWithinZoneTravelTime(Vector3 from, Vector3 to, uint territoryId, PlayerNavState playerState)
{
int num = (territoryInfo.CanUseMount(territoryId) ? (-1627784527) : (-1627784525));
float num7 = default(float);
while (true)
{
int num2 = num;
int num3 = -1627784522;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 8:
{
float num8 = _200D_202D_202A_202D_202B_206A_202A_202A_206F_200B_206C_206F_202A_206D_202C_206D_202A_206C_202C_202D_200E_202A_200D_206F_200B_200B_206F_206C_202E_206D_202D_206D_206E_200E_200C_206E_206E_206B_202C_202C_202E(playerState.GetMountSpeedLevel(territoryId));
return num7 / num8 + 1f;
}
case 7:
num = ((!playerState.MountUnlocked) ? (-1627784528) : (-1627784521));
break;
case 4:
num7 = Estimate2DDistance(from, to) * 1.3f;
num = (playerState.MountUnlocked ? (-1627784514) : (-1627784524));
break;
case 1:
if (playerState.IsFlyingUnlocked(territoryId))
{
num = -1627784523;
break;
}
goto case 6;
case 5:
return Estimate2DDistance(from, to) * 1.1f / 7.8f;
case 0:
num = -1627784525;
break;
case 2:
return num7 / 6f;
case 6:
num = -1627784526;
break;
case 3:
return Vector3.Distance(from, to) / 20f + 1f;
}
}
}
public static float EstimateTeleportTime()
{
return 7f;
}
public static float EstimateAethernetHopTime()
{
return 2f;
}
private static float Estimate2DDistance(Vector3 from, Vector3 to)
{
float num = from.X - to.X;
float num2 = from.Z - to.Z;
return _202B_202B_206C_206D_200B_206B_206C_202B_200B_206E_200E_200E_200F_206F_206C_200D_206C_206A_202E_202B_200E_206F_202B_202B_206E_200D_202A_202D_200E_202E_206A_200C_202E_200D_202E_206D_200B_200C_206D_202E_202E(num * num + num2 * num2);
}
static float _200D_202D_202A_202D_202B_206A_202A_202A_206F_200B_206C_206F_202A_206D_202C_206D_202A_206C_202C_202D_200E_202A_200D_206F_200B_200B_206F_206C_202E_206D_202D_206D_206E_200E_200C_206E_206E_206B_202C_202C_202E(int P_0)
{
return MovementData.Speeds.GetMountGroundSpeed(P_0);
}
static float _202B_202B_206C_206D_200B_206B_206C_202B_200B_206E_200E_200E_200F_206F_206C_200D_206C_206A_202E_202B_200E_206F_202B_202B_206E_200D_202A_202D_200E_202E_206A_200C_202E_200D_202E_206D_200B_200C_206D_202E_202E(float P_0)
{
return MathF.Sqrt(P_0);
}
}

View file

@ -0,0 +1,22 @@
using SmartNav.Model;
namespace SmartNav;
public interface IPlayerContext
{
uint? CurrentMsqQuestId { get; }
int GilReserve { get; }
bool PreferFreeTravel { get; }
bool UseTeleportTickets { get; }
bool IsAetheryteUnlocked(EAetheryteLocation aetheryte);
bool IsFlyingUnlocked(uint territoryId);
bool IsTeleportUnlocked();
bool IsReturnAvailable();
}

View file

@ -0,0 +1,12 @@
namespace SmartNav;
public interface ITerritoryInfo
{
string? GetName(uint territoryId);
string GetNameAndId(uint territoryId);
byte GetExVersion(uint territoryId);
bool CanUseMount(uint territoryId);
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,743 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading;
using Microsoft.Extensions.Logging;
using SmartNav.Graph;
using SmartNav.Model;
namespace SmartNav;
public sealed class NavRouter
{
internal readonly record struct RouteCost(float Time, int Gil, int Hops) : IComparable<RouteCost>
{
public static readonly RouteCost Max = new RouteCost(float.MaxValue, int.MaxValue, int.MaxValue);
public RouteCost Add(NavEdge edge, float penalty)
{
return new RouteCost(Time + edge.TimeCostSeconds + penalty, Gil + edge.GilCost, Hops + 1);
}
public int CompareTo(RouteCost other)
{
int num = Time.CompareTo(other.Time);
int num2 = ((num == 0) ? (-471116150) : (-471116149));
int num6 = default(int);
while (true)
{
int num3 = num2;
int num4 = -471116152;
int num5 = num3;
switch ((num5 | num4) - (num5 & num4))
{
case 0:
num2 = -471116149;
break;
case 1:
return Hops.CompareTo(other.Hops);
case 3:
return num;
case 4:
return num6;
case 2:
num6 = Gil.CompareTo(other.Gil);
num2 = ((num6 == 0) ? (-471116151) : (-471116148));
break;
}
}
}
int IComparable<RouteCost>.CompareTo(RouteCost other)
{
//ILSpy generated this explicit interface implementation from .override directive in CompareTo
return this.CompareTo(other);
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _202B_206A_200B_202B_202E_200C_202A_206A_202D_202A_202E_206F_206D_200E_206F_200B_202A_200B_206E_202D_202E_206A_200B_206E_202B_206F_202A_202C_206C_206D_206C_200B_200F_202C_202E_206A_200E_206A_202B_206C_202E();
_202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1818956806));
_202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-169322018));
int num = ((!PrintMembers(stringBuilder)) ? 1574210164 : 1574210167);
while (true)
{
int num2 = num;
int num3 = 1574210166;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
_202E_206C_200F_206A_200C_202C_200B_200E_206F_202D_206C_202A_206B_206C_202B_202B_200F_206C_200C_206F_200C_200D_202E_202E_206F_202C_200D_202B_202E_206C_206C_206B_206C_202A_200D_206A_206C_202A_206A_206A_202E(stringBuilder, '}');
return _202D_202E_206C_200F_202B_200B_206E_200C_202D_206F_202D_200D_202C_200E_202E_202B_206E_206A_200D_206D_206C_200D_200B_202B_206B_202D_202C_200D_202A_200F_206A_202A_200C_200D_200F_200C_202B_206A_202A_202B_202E((object)stringBuilder);
case 1:
_202E_206C_200F_206A_200C_202C_200B_200E_206F_202D_206C_202A_206B_206C_202B_202B_200F_206C_200C_206F_200C_200D_202E_202E_206F_202C_200D_202B_202E_206C_206C_206B_206C_202A_200D_206A_206C_202A_206A_206A_202E(stringBuilder, ' ');
num = 1574210164;
break;
case 0:
num = 1574210167;
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(193985830));
_202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(builder, Time.ToString());
_202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-143137433));
_202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(builder, Gil.ToString());
_202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-304888681));
_202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(builder, Hops.ToString());
return true;
}
[CompilerGenerated]
public bool Equals(RouteCost other)
{
int num = ((!EqualityComparer<float>.Default.Equals(Time, other.Time)) ? (-631091536) : (-631091534));
while (true)
{
int num2 = num;
int num3 = -631091536;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 3:
num = -631091534;
break;
case 1:
return EqualityComparer<int>.Default.Equals(Hops, other.Hops);
case 2:
num = ((!EqualityComparer<int>.Default.Equals(Gil, other.Gil)) ? (-631091536) : (-631091535));
break;
case 0:
return false;
}
}
}
bool IEquatable<RouteCost>.Equals(RouteCost other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static StringBuilder _202B_206A_200B_202B_202E_200C_202A_206A_202D_202A_202E_206F_206D_200E_206F_200B_202A_200B_206E_202D_202E_206A_200B_206E_202B_206F_202A_202C_206C_206D_206C_200B_200F_202C_202E_206A_200E_206A_202B_206C_202E()
{
return new StringBuilder();
}
static StringBuilder _202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _202E_206C_200F_206A_200C_202C_200B_200E_206F_202D_206C_202A_206B_206C_202B_202B_200F_206C_200C_206F_200C_200D_202E_202E_206F_202C_200D_202B_202E_206C_206C_206B_206C_202A_200D_206A_206C_202A_206A_206A_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _202D_202E_206C_200F_202B_200B_206E_200C_202D_206F_202D_200D_202C_200E_202E_202B_206E_206A_200D_206D_206C_200D_200B_202B_206B_202D_202C_200D_202A_200F_206A_202A_200C_200D_200F_200C_202B_206A_202A_202B_202E(object P_0)
{
return P_0.ToString();
}
}
private readonly NavGraphBuilder _graphBuilder;
private readonly NavGraphView _graphView;
private readonly ITerritoryInfo _territoryInfo;
private readonly ILogger<NavRouter> _logger;
private volatile Lazy<NavGraph> _staticGraph;
private const float ReRoutePenaltySeconds = 1000000f;
public NavGraph StaticGraph => _staticGraph.Value;
public NavRouter(NavGraphBuilder graphBuilder, NavGraphView graphView, ITerritoryInfo territoryInfo, ILogger<NavRouter> logger)
{
_graphBuilder = graphBuilder;
_graphView = graphView;
_territoryInfo = territoryInfo;
_logger = logger;
_staticGraph = new Lazy<NavGraph>(_graphBuilder.Build, LazyThreadSafetyMode.ExecutionAndPublication);
}
public void InvalidateStaticGraph()
{
_staticGraph = new Lazy<NavGraph>(_graphBuilder.Build, LazyThreadSafetyMode.ExecutionAndPublication);
}
[MethodImpl(MethodImplOptions.NoInlining)]
public RouteResult FindRoute(PlayerNavState playerState, uint destinationTerritoryId, Vector3 destinationPosition, IReadOnlySet<string>? penalizedTargets = null)
{
(NavGraph EffectiveGraph, string OriginId, string DestinationId) tuple = _graphView.CreateQueryGraph(StaticGraph, playerState, destinationTerritoryId, destinationPosition);
NavGraph item = tuple.EffectiveGraph;
string item2 = tuple.OriginId;
string item3 = tuple.DestinationId;
int num = ((item.GetNode(item2) == null) ? (-322814782) : (-322814778));
List<(string, NavEdge)> list = default(List<(string, NavEdge)>);
while (true)
{
int num2 = num;
int num3 = -322814777;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
_202C_200E_200B_200F_200E_202A_200F_206E_206E_206E_200E_202B_202A_200B_202E_200E_206A_206E_200D_200B_200C_202C_202C_202A_202E_200D_200F_200F_206C_200B_206A_202B_200B_206A_200E_200E_206A_202A_202A_206E_202E((ILogger)_logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(599235747), new object[2] { item2, destinationTerritoryId });
return RouteResult.Empty;
case 3:
list = Dijkstra(item, item2, item3, penalizedTargets);
num = ((list != null) ? (-322814781) : (-322814777));
break;
case 5:
_202C_200E_200B_200F_200E_202A_200F_206E_206E_206E_200E_202B_202A_200B_202E_200E_206A_206E_200D_200B_200C_202C_202C_202A_202E_200D_200F_200F_206C_200B_206A_202B_200B_206A_200E_200E_206A_202A_202A_206E_202E((ILogger)_logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(310385065), Array.Empty<object>());
return RouteResult.Empty;
case 1:
num = ((!(item.GetNode(item3) == null)) ? (-322814780) : (-322814782));
break;
case 4:
return BuildRouteResult(item, list, playerState);
case 2:
num = -322814778;
break;
}
}
}
internal static List<(string NodeId, NavEdge? ViaEdge)>? Dijkstra(NavGraph graph, string startId, string endId, IReadOnlySet<string>? penalizedTargets)
{
Dictionary<string, RouteCost> dictionary = new Dictionary<string, RouteCost>();
Dictionary<string, (string, NavEdge)?> dictionary2 = new Dictionary<string, (string, NavEdge)?>();
HashSet<string> hashSet = new HashSet<string>();
PriorityQueue<string, RouteCost> priorityQueue = new PriorityQueue<string, RouteCost>();
dictionary[startId] = default(RouteCost);
priorityQueue.Enqueue(startId, default(RouteCost));
IEnumerator<string> enumerator = graph.Nodes.Keys.GetEnumerator();
try
{
int num = 1145583331;
string current = default(string);
while (true)
{
int num2 = num;
int num3 = 1145583330;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 5:
dictionary2[current] = null;
num = 1145583331;
break;
case 3:
dictionary[current] = RouteCost.Max;
num = 1145583335;
break;
case 4:
current = enumerator.Current;
num = ((!_206C_206C_206F_202B_206E_202D_206B_200C_202E_202A_202B_206E_200D_206A_200D_202C_202A_206E_206A_206F_200C_200B_206F_202A_202C_206F_206D_202D_206D_200C_206E_206C_206F_200E_202A_202B_206C_206D_202D_206A_202E(current, startId)) ? 1145583335 : 1145583329);
break;
case 0:
num = 1145583331;
break;
case 1:
num = (_202E_202B_206E_206A_202D_206A_206D_202D_206B_206E_200E_202C_206E_202D_206B_202C_206D_202A_200B_206F_206E_200D_206E_200D_202C_200C_202D_206B_206E_200D_206B_200E_206C_200F_202B_200B_202B_200B_200D_206B_202E((IEnumerator)enumerator) ? 1145583334 : 1145583328);
break;
case 2:
goto end_IL_0058;
}
continue;
end_IL_0058:
break;
}
}
finally
{
int num = ((enumerator == null) ? (-807240815) : (-807240814));
while (true)
{
int num7 = num;
int num3 = -807240816;
int num4 = num7;
int num8 = num4 + num3;
int num9 = num4 & num3;
switch (num8 - (num9 + num9))
{
case 0:
num = -807240814;
break;
case 1:
goto end_IL_014b;
case 2:
_206C_206D_206D_200F_206D_202B_202A_206A_200D_206D_206E_202B_206C_202C_202C_200C_206F_200F_202B_200B_200E_206A_202B_206F_206A_202D_200F_200F_206A_202E_200E_202B_200C_206F_200B_206E_200C_202E_206A_206F_202E((IDisposable)enumerator);
num = -807240815;
break;
}
continue;
end_IL_014b:
break;
}
}
NavEdge current2 = default(NavEdge);
RouteCost routeCost = default(RouteCost);
List<(string, NavEdge)> list = default(List<(string, NavEdge)>);
(string, NavEdge)? tuple = default((string, NavEdge)?);
string text2 = default(string);
(string, NavEdge)? value = default((string, NavEdge)?);
while (true)
{
int num;
if (priorityQueue.Count > 0)
{
string text = priorityQueue.Dequeue();
if (!_202C_200F_206E_202A_200E_206D_206B_202E_200D_200B_202A_202A_206A_200F_202A_206F_202C_206C_200E_206D_202E_202A_200B_202C_202D_206A_206E_202E_200F_206B_202B_200E_206A_206D_202C_202B_200C_202E_206E_202E(text, endId))
{
num = -1852685480;
while (true)
{
int num10 = num;
int num3 = -1852685479;
int num4 = num10;
int num11 = num4 + num3;
int num12 = num4 & num3;
switch (num11 - (num12 + num12))
{
default:
continue;
case 0:
num = -1852685480;
continue;
case 1:
if (hashSet.Add(text))
{
num = -1852685477;
continue;
}
break;
case 2:
{
IEnumerator<NavEdge> enumerator2 = graph.GetEdges(text).GetEnumerator();
try
{
num = -890864952;
while (true)
{
int num13 = num;
num3 = -890864947;
num4 = num13;
float num14;
switch ((num4 | num3) - (num4 & num3))
{
default:
continue;
case 9:
num = -890864952;
continue;
case 2:
num14 = 0f;
break;
case 1:
num = (penalizedTargets.Contains(current2.ToNodeId) ? (-890864946) : (-890864945));
continue;
case 8:
current2 = enumerator2.Current;
num = (hashSet.Contains(current2.ToNodeId) ? (-890864952) : (-890864950));
continue;
case 4:
dictionary[current2.ToNodeId] = routeCost;
dictionary2[current2.ToNodeId] = (text, current2);
priorityQueue.Enqueue(current2.ToNodeId, routeCost);
num = -890864952;
continue;
case 7:
num = ((graph.GetNode(current2.ToNodeId) == null) ? (-890864952) : (-890864947));
continue;
case 0:
num = ((penalizedTargets == null) ? (-890864945) : (-890864948));
continue;
case 5:
num = (_202E_202B_206E_206A_202D_206A_206D_202D_206B_206E_200E_202C_206E_202D_206B_202C_206D_202A_200B_206F_206E_200D_206E_200D_202C_200C_202D_206B_206E_200D_206B_200E_206C_200F_202B_200B_202B_200B_200D_206B_202E((IEnumerator)enumerator2) ? (-890864955) : (-890864949));
continue;
case 3:
num14 = 1000000f;
break;
case 6:
goto end_IL_0228;
}
float penalty = num14;
routeCost = dictionary[text].Add(current2, penalty);
num = ((routeCost.CompareTo(dictionary[current2.ToNodeId]) >= 0) ? (-890864952) : (-890864951));
continue;
end_IL_0228:
break;
}
}
finally
{
num = ((enumerator2 == null) ? (-1559785427) : (-1559785428));
while (true)
{
int num15 = num;
num3 = -1559785427;
num4 = num15;
int num16 = num4 + num3;
int num17 = num4 & num3;
switch (num16 - (num17 + num17))
{
case 0:
goto end_IL_041a;
case 1:
_206C_206D_206D_200F_206D_202B_202A_206A_200D_206D_206E_202B_206C_202C_202C_200C_206F_200F_202B_200B_200E_206A_202B_206F_206A_202D_200F_200F_206A_202E_200E_202B_200C_206F_200B_206E_200C_202E_206A_206F_202E((IDisposable)enumerator2);
num = -1559785427;
break;
case 2:
num = -1559785428;
break;
}
continue;
end_IL_041a:
break;
}
}
break;
}
}
break;
}
continue;
}
goto IL_055e;
}
num = 1361377681;
goto IL_0480;
IL_055e:
num = ((!(dictionary[endId] == RouteCost.Max)) ? 1361377683 : 1361377691);
goto IL_0480;
IL_0480:
while (true)
{
int num18 = num;
int num3 = 1361377682;
int num4 = num18;
int num19 = num4 + num3;
int num20 = num4 & num3;
object obj2;
(string, NavEdge)? obj;
switch (num19 - (num20 + num20))
{
default:
continue;
case 10:
list.Reverse();
return list;
case 6:
obj2 = tuple.GetValueOrDefault().Item1;
goto IL_04e4;
case 1:
list = new List<(string, NavEdge)>();
text2 = endId;
num = 1361377690;
continue;
case 4:
obj = value;
goto IL_050a;
case 9:
return null;
case 3:
break;
case 5:
num = (dictionary2.TryGetValue(text2, out value) ? 1361377686 : 1361377680);
continue;
case 8:
num = ((text2 != null) ? 1361377687 : 1361377688);
continue;
case 7:
obj2 = null;
goto IL_04e4;
case 2:
obj = null;
goto IL_050a;
case 0:
{
num = 1361377681;
continue;
}
IL_04e4:
text2 = (string)obj2;
num = 1361377690;
continue;
IL_050a:
tuple = obj;
list.Add((text2, tuple?.Item2));
num = (tuple.HasValue ? 1361377684 : 1361377685);
continue;
}
break;
}
goto IL_055e;
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
private RouteResult BuildRouteResult(NavGraph graph, List<(string NodeId, NavEdge? ViaEdge)> path, PlayerNavState playerState)
{
List<RouteSegment> list = new List<RouteSegment>();
float num = 0f;
int num2 = 0;
int num3 = 1;
int num4 = -1379840966;
NavNode node = default(NavNode);
NavEdge item2 = default(NavEdge);
NavNode node2 = default(NavNode);
NavEdgeType edgeType = default(NavEdgeType);
bool flag2 = default(bool);
int num11 = default(int);
while (true)
{
int num5 = num4;
int num6 = -1379840964;
int num7 = num5;
int num8 = num7 + num6;
int num9 = num7 & num6;
switch (num8 - (num9 + num9))
{
case 13:
node = graph.GetNode(item2.FromNodeId);
node2 = graph.GetNode(item2.ToNodeId);
edgeType = item2.EdgeType;
num4 = ((edgeType == NavEdgeType.WithinZone) ? (-1379840963) : (-1379840964));
break;
case 8:
{
bool flag = flag2;
RouteSegment item = new RouteSegment(item2.EdgeType, node, node2, item2.TimeCostSeconds, item2.GilCost, GetTeleportTarget(node2), GetAethernetLocation(node), GetAethernetLocation(node2), flag && IsFlyingSegment(node, playerState));
list.Add(item);
num += item2.TimeCostSeconds;
num2 += item2.GilCost;
num4 = -1379840962;
break;
}
case 11:
num4 = -1379840966;
break;
case 3:
return new RouteResult(list, num, num2);
case 4:
flag2 = false;
num4 = -1379840972;
break;
case 9:
num11 = 0;
num4 = -1379840976;
break;
case 7:
{
RouteSegment routeSegment = list[num11];
string text = FormatNodeLabel(routeSegment.From);
string text2 = FormatNodeLabel(routeSegment.To);
ILogger<NavRouter> logger = _logger;
string text3 = global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1568494376);
object[] array = new object[6];
int num12 = num11;
num6 = 1;
num7 = num12;
array[0] = (num7 | num6) + (num7 & num6);
array[1] = routeSegment.EdgeType;
array[2] = text;
array[3] = text2;
array[4] = routeSegment.TimeCost;
array[5] = routeSegment.GilCost;
_206E_200F_202A_200D_206F_206C_200E_200F_206A_202B_202D_202A_202A_206D_200D_202D_200B_200F_202B_206A_206E_202A_202E_206F_202E_202A_200D_206A_202D_200F_206D_206E_200D_202E_202B_206C_206D_202D_202A_202E((ILogger)logger, text3, array);
int num13 = num11;
num6 = 1;
num7 = num13;
int num14 = num7 ^ num6;
int num15 = num7 & num6;
num11 = num14 + (num15 + num15);
num4 = -1379840976;
break;
}
case 0:
num4 = (((uint)(edgeType - 3) > 1u) ? (-1379840968) : (-1379840963));
break;
case 12:
num4 = ((num11 < list.Count) ? (-1379840965) : (-1379840961));
break;
case 5:
_206E_200F_202A_200D_206F_206C_200E_200F_206A_202B_202D_202A_202A_206D_200D_202D_200B_200F_202B_206A_206E_202A_202E_206F_202E_202A_200D_206A_202D_200F_206D_206E_200D_202E_202B_206C_206D_202D_202A_202E((ILogger)_logger, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-876283160), new object[3] { list.Count, num, num2 });
num4 = ((!_206E_202B_202B_206F_200C_200D_206E_202D_202C_206E_206B_200D_206F_202C_200D_206A_200F_206D_202D_200B_200E_206F_202C_200B_200B_206D_200D_202A_206D_206E_206A_202C_202A_200F_200D_202D_200C_206A_202B_200E_202E((ILogger)_logger, LogLevel.Debug)) ? (-1379840961) : (-1379840971));
break;
case 10:
item2 = path[num3].ViaEdge;
num4 = ((item2 == null) ? (-1379840962) : (-1379840975));
break;
case 2:
{
int num10 = num3;
num6 = 1;
num7 = num10;
num3 = (num7 | num6) + (num7 & num6);
num4 = -1379840966;
break;
}
case 1:
flag2 = true;
num4 = -1379840972;
break;
case 6:
num4 = ((num3 < path.Count) ? (-1379840970) : (-1379840967));
break;
}
}
}
private static EAetheryteLocation? GetTeleportTarget(NavNode node)
{
NavNode.AetheryteNode aetheryteNode = node as NavNode.AetheryteNode;
int num = (((object)aetheryteNode == null) ? 580580720 : 580580722);
EAetheryteLocation? result = default(EAetheryteLocation?);
while (true)
{
int num2 = num;
int num3 = 580580721;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
num = 580580722;
break;
case 1:
result = null;
num = 580580723;
break;
case 3:
result = aetheryteNode.Aetheryte;
num = 580580723;
break;
case 2:
return result;
}
}
}
private static EAetheryteLocation? GetAethernetLocation(NavNode node)
{
NavNode.AetheryteNode aetheryteNode = node as NavNode.AetheryteNode;
int num = (((object)aetheryteNode != null) ? (-1554241774) : (-1554241770));
EAetheryteLocation? result = default(EAetheryteLocation?);
NavNode.AethernetNode aethernetNode = default(NavNode.AethernetNode);
while (true)
{
int num2 = num;
int num3 = -1554241772;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 6:
result = aetheryteNode.Aetheryte;
num = -1554241776;
break;
case 4:
return result;
case 2:
aethernetNode = node as NavNode.AethernetNode;
num = (((object)aethernetNode != null) ? (-1554241769) : (-1554241771));
break;
case 5:
result = null;
num = -1554241776;
break;
case 0:
num = -1554241770;
break;
case 3:
result = aethernetNode.Aethernet;
num = -1554241776;
break;
case 1:
num = -1554241775;
break;
}
}
}
private static bool IsFlyingSegment(NavNode from, PlayerNavState playerState)
{
return playerState.IsFlyingUnlocked(from.TerritoryId);
}
[MethodImpl(MethodImplOptions.NoInlining)]
private string FormatNodeLabel(NavNode node)
{
string text = _territoryInfo.GetName(node.TerritoryId);
if (text == null)
{
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(1, 1);
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-907107096));
defaultInterpolatedStringHandler.AppendFormatted(node.TerritoryId);
text = defaultInterpolatedStringHandler.ToStringAndClear();
}
string text2 = text;
return _206C_206A_200F_202B_202D_206B_206D_206A_206E_206E_200E_200B_206D_206B_206A_206E_202B_206F_200E_202A_200F_202C_200E_202E_202D_200D_200B_200D_200C_206A_200F_206A_206F_200F_200C_206D_200D_200B_202D_202A_202E(node.Label, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-546241467), text2, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(998949340));
}
static void _202C_200E_200B_200F_200E_202A_200F_206E_206E_206E_200E_202B_202A_200B_202E_200E_206A_206E_200D_200B_200C_202C_202C_202A_202E_200D_200F_200F_206C_200B_206A_202B_200B_206A_200E_200E_206A_202A_202A_206E_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogWarning(P_1, P_2);
}
static bool _206C_206C_206F_202B_206E_202D_206B_200C_202E_202A_202B_206E_200D_206A_200D_202C_202A_206E_206A_206F_200C_200B_206F_202A_202C_206F_206D_202D_206D_200C_206E_206C_206F_200E_202A_202B_206C_206D_202D_206A_202E(string P_0, string P_1)
{
return P_0 != P_1;
}
static bool _202E_202B_206E_206A_202D_206A_206D_202D_206B_206E_200E_202C_206E_202D_206B_202C_206D_202A_200B_206F_206E_200D_206E_200D_202C_200C_202D_206B_206E_200D_206B_200E_206C_200F_202B_200B_202B_200B_200D_206B_202E(IEnumerator P_0)
{
return P_0.MoveNext();
}
static void _206C_206D_206D_200F_206D_202B_202A_206A_200D_206D_206E_202B_206C_202C_202C_200C_206F_200F_202B_200B_200E_206A_202B_206F_206A_202D_200F_200F_206A_202E_200E_202B_200C_206F_200B_206E_200C_202E_206A_206F_202E(IDisposable P_0)
{
P_0.Dispose();
}
static bool _202C_200F_206E_202A_200E_206D_206B_202E_200D_200B_202A_202A_206A_200F_202A_206F_202C_206C_200E_206D_202E_202A_200B_202C_202D_206A_206E_202E_200F_206B_202B_200E_206A_206D_202C_202B_200C_202E_206E_202E(string P_0, string P_1)
{
return P_0 == P_1;
}
static void _206E_200F_202A_200D_206F_206C_200E_200F_206A_202B_202D_202A_202A_206D_200D_202D_200B_200F_202B_206A_206E_202A_202E_206F_202E_202A_200D_206A_202D_200F_206D_206E_200D_202E_202B_206C_206D_202D_202A_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogDebug(P_1, P_2);
}
static bool _206E_202B_202B_206F_200C_200D_206E_202D_202C_206E_206B_200D_206F_202C_200D_206A_200F_206D_202D_200B_200E_206F_202C_200B_200B_206D_200D_202A_206D_206E_206A_202C_202A_200F_200D_202D_200C_206A_202B_200E_202E(ILogger P_0, LogLevel P_1)
{
return P_0.IsEnabled(P_1);
}
static string _206C_206A_200F_202B_202D_206B_206D_206A_206E_206E_200E_200B_206D_206B_206A_206E_202B_206F_200E_202A_200F_202C_200E_202E_202D_200D_200B_200D_200C_206A_200F_206A_206F_200F_200C_206D_200D_200B_202D_202A_202E(string P_0, string P_1, string P_2, string P_3)
{
return P_0 + P_1 + P_2 + P_3;
}
}

View file

@ -0,0 +1,144 @@
using System;
using System.Collections.Generic;
using System.Numerics;
using SmartNav.Model;
namespace SmartNav;
public sealed class PlayerNavState
{
public required uint CurrentTerritoryId { get; init; }
public required Vector3 CurrentPosition { get; init; }
public required int Gil { get; init; }
public required int GilReserve { get; init; }
public required IReadOnlySet<EAetheryteLocation> UnlockedAetherytes { get; init; }
public required EAetheryteLocation HomeAetheryte { get; init; }
public required EAetheryteLocation? FreeAetheryte { get; init; }
public required IReadOnlyDictionary<EAetheryteLocation, int> TeleportCosts { get; init; }
public required IReadOnlySet<uint> FlyingUnlockedTerritories { get; init; }
public required IReadOnlyDictionary<uint, int> MountSpeedLevels { get; init; }
public required bool TeleportUnlocked { get; init; }
public required bool ReturnAvailable { get; init; }
public required bool MountUnlocked { get; init; }
public required byte MaxExpansion { get; init; }
public required int CurrentLevel { get; init; }
public required uint? CurrentMsqQuestId { get; init; }
public required bool PreferFreeTravel { get; init; }
public required Func<uint, bool> QuestCompleteChecker { get; init; }
public required Func<uint, byte> QuestSequenceChecker { get; init; }
public IReadOnlySet<uint> AvailableTeleportTickets { get; init; } = new HashSet<uint>();
public bool CanAffordTeleport(int gilCost)
{
int num = ((gilCost == 0) ? (-1679548290) : (-1679548289));
while (true)
{
int num2 = num;
int num3 = -1679548290;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
goto IL_0041;
case 0:
return true;
case 1:
return Gil - gilCost >= GilReserve;
}
continue;
IL_0041:
num = -1679548289;
}
}
public int GetTeleportCost(EAetheryteLocation aetheryte)
{
int value;
int num = (TeleportCosts.TryGetValue(aetheryte, out value) ? 1986787901 : 1986787902);
while (true)
{
int num2 = num;
int num3 = 1986787900;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
goto IL_0050;
case 2:
return 999;
case 1:
return value;
}
continue;
IL_0050:
num = 1986787902;
}
}
public bool IsAetheryteUnlocked(EAetheryteLocation aetheryte)
{
return UnlockedAetherytes.Contains(aetheryte);
}
public bool IsFlyingUnlocked(uint territoryId)
{
return FlyingUnlockedTerritories.Contains(territoryId);
}
public int GetMountSpeedLevel(uint territoryId)
{
int value;
int num = (MountSpeedLevels.TryGetValue(territoryId, out value) ? (-743814756) : (-743814753));
while (true)
{
int num2 = num;
int num3 = -743814754;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
goto IL_0050;
case 1:
return 0;
case 2:
return value;
}
continue;
IL_0050:
num = -743814753;
}
}
public bool IsQuestComplete(uint questRowId)
{
return QuestCompleteChecker(questRowId);
}
public byte GetQuestSequence(uint questRowId)
{
return QuestSequenceChecker(questRowId);
}
}

View file

@ -0,0 +1,626 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Numerics;
using Dalamud.Game.ClientState.Aetherytes;
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;
using Lumina.Excel.Sheets;
using SmartNav.Data;
using SmartNav.Model;
namespace SmartNav;
public class PlayerNavStateBuilder(IClientState clientState, IObjectTable objectTable, IAetheryteList aetheryteList, AetheryteData aetheryteData, TeleportTicketService teleportTicketService, IPlayerContext playerContext, IDataManager dataManager)
{
public virtual PlayerNavState? Build(int? gilReserveOverride = null)
{
IGameObject gameObject = _206E_202E_200C_206A_202C_202C_206E_202E_206C_202A_206D_202D_206B_206B_202B_206D_206C_206C_206D_206A_206E_200F_206A_206C_200D_206B_200E_206A_206E_206B_206D_202B_202A_206F_202A_202B_202D_202C_206E_202A_202E(objectTable, 0);
int num = ((gameObject != null) ? 1190878108 : 1190878111);
EAetheryteLocation current2 = default(EAetheryteLocation);
EAetheryteLocation current3 = default(EAetheryteLocation);
while (true)
{
int num2 = num;
int num3 = 1190878109;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
goto IL_0057;
case 2:
return null;
case 1:
{
HashSet<EAetheryteLocation> hashSet = new HashSet<EAetheryteLocation>();
Dictionary<EAetheryteLocation, int> dictionary = new Dictionary<EAetheryteLocation, int>();
EAetheryteLocation homeAetheryte = (EAetheryteLocation)_200D_200E_202C_202E_206F_200E_202C_206F_200F_200C_206C_200D_200F_200E_202B_200C_202B_200F_200C_200F_206D_206F_202B_206B_202D_200E_200D_206E_206F_202E_206D_202C_202B_200C_200B_206D_206D_202A_206E_206B_202E();
EAetheryteLocation? freeAetheryte = null;
byte maxExpansion = _202A_200E_200B_200F_206A_202C_202A_206D_202C_206A_202C_206F_202C_202B_206E_206A_202A_200E_200D_206C_202B_200D_206E_200D_206D_200F_206A_202D_202C_206F_200D_200C_206B_206B_206A_206E_200E_200E_206A_202B_202E();
IEnumerator<IAetheryteEntry> enumerator = aetheryteList.GetEnumerator();
try
{
num = -2145786572;
while (true)
{
int num5 = num;
num3 = -2145786572;
num4 = num5;
int num6 = num4 + num3;
int num7 = num4 & num3;
switch (num6 - (num7 + num7))
{
case 0:
num = (_200F_200B_206B_200F_200E_202B_200F_202B_206B_202D_202A_206E_200F_200E_202E_206C_206D_202E_206F_202E_206B_202D_202D_202B_202D_202C_202C_206E_202C_200D_202A_200E_206D_200B_202E_200F_206E_206E_200D_206C_202E((IEnumerator)enumerator) ? (-2145786571) : (-2145786570));
break;
case 1:
{
IAetheryteEntry current = enumerator.Current;
EAetheryteLocation eAetheryteLocation = (EAetheryteLocation)_200C_200D_202E_202B_206B_202A_206C_202E_206D_202D_206A_206A_202A_206F_202D_200F_202A_206B_206A_206F_200B_202C_206E_206B_200D_200D_200E_206B_202C_206D_206A_200F_202B_202A_200D_202B_206C_206D_200F_200D_202E(current);
hashSet.Add(eAetheryteLocation);
dictionary[eAetheryteLocation] = (int)_202B_206D_202D_200B_200B_200C_206B_200E_200B_202A_200D_206E_202D_200B_206F_206B_200D_202E_200E_206E_202E_200D_206F_206D_206A_200F_206E_200C_202D_202D_206C_206D_202E_200B_200D_206F_202D_200B_206E_200D_202E(current);
num = -2145786572;
break;
}
case 3:
num = -2145786572;
break;
case 2:
goto end_IL_009f;
}
continue;
end_IL_009f:
break;
}
}
finally
{
num = ((enumerator == null) ? 1827327183 : 1827327180);
while (true)
{
int num8 = num;
num3 = 1827327181;
num4 = num8;
int num9 = num4 + num3;
int num10 = num4 & num3;
switch (num9 - (num10 + num10))
{
case 0:
num = 1827327180;
break;
case 1:
_202B_200E_206C_200E_200E_206E_202B_200C_202B_200B_206D_202E_200C_200F_206C_202D_200D_202A_200E_206B_202B_206B_202A_200C_206D_200D_206E_202C_202B_206E_206A_200B_206D_200E_202A_202D_200B_206F_200C_202E((IDisposable)enumerator);
num = 1827327183;
break;
case 2:
goto end_IL_015b;
}
continue;
end_IL_015b:
break;
}
}
IEnumerator<EAetheryteLocation> enumerator2 = aetheryteData.Locations.Keys.GetEnumerator();
try
{
num = 463235074;
while (true)
{
int num11 = num;
num3 = 463235072;
num4 = num11;
int num12 = num4 + num3;
int num13 = num4 & num3;
switch (num12 - (num13 + num13))
{
case 2:
num = (_200F_200B_206B_200F_200E_202B_200F_202B_206B_202D_202A_206E_200F_200E_202E_206C_206D_202E_206F_202E_206B_202D_202D_202B_202D_202C_202C_206E_202C_200D_202A_200E_206D_200B_202E_200F_206E_206E_200D_206C_202E((IEnumerator)enumerator2) ? 463235076 : 463235073);
break;
case 4:
current2 = enumerator2.Current;
num = ((!playerContext.IsAetheryteUnlocked(current2)) ? 463235074 : 463235072);
break;
case 0:
hashSet.Add(current2);
num = 463235074;
break;
case 3:
num = 463235074;
break;
case 1:
goto end_IL_01cc;
}
continue;
end_IL_01cc:
break;
}
}
finally
{
num = ((enumerator2 == null) ? 1430009245 : 1430009244);
while (true)
{
int num14 = num;
num3 = 1430009245;
num4 = num14;
int num15 = num4 + num3;
int num16 = num4 & num3;
switch (num15 - (num16 + num16))
{
case 2:
num = 1430009244;
break;
case 1:
_202B_200E_206C_200E_200E_206E_202B_200C_202B_200B_206D_202E_200C_200F_206C_202D_200D_202A_200E_206B_202B_206B_202A_200C_206D_200D_206E_202C_202B_206E_206A_200B_206D_200E_202A_202D_200B_206F_200C_202E((IDisposable)enumerator2);
num = 1430009245;
break;
case 0:
goto end_IL_029e;
}
continue;
end_IL_029e:
break;
}
}
using (HashSet<EAetheryteLocation>.Enumerator enumerator3 = hashSet.GetEnumerator())
{
num = 1372900048;
while (true)
{
int num17 = num;
num3 = 1372900048;
num4 = num17;
switch ((num4 | num3) - (num4 & num3))
{
case 1:
{
EAetheryteLocation value = current3;
freeAetheryte = value;
num = 1372900050;
break;
}
case 2:
dictionary[current3] = 0;
num = 1372900048;
break;
case 3:
{
EAetheryteLocation value = freeAetheryte.GetValueOrDefault();
num = (freeAetheryte.HasValue ? 1372900050 : 1372900049);
break;
}
case 0:
num = (enumerator3.MoveNext() ? 1372900054 : 1372900052);
break;
case 6:
current3 = enumerator3.Current;
num = ((!_206D_200C_206C_206D_200F_202A_206C_206D_200D_200E_202C_206D_200C_202E_200C_202E_200E_202C_206F_206C_206A_206C_200B_202E_202C_206B_200E_200B_202D_206D_200F_202D_200C_200E_200C_200F_200B_202C_206C_200D_202E((uint)current3)) ? 1372900048 : 1372900051);
break;
case 5:
num = 1372900048;
break;
case 4:
goto end_IL_0300;
}
continue;
end_IL_0300:
break;
}
}
int currentGil = GetCurrentGil();
HashSet<uint> flyingUnlockedTerritories = BuildFlyingUnlockedSet();
Dictionary<uint, int> mountSpeedLevels = BuildMountSpeedLevels();
PlayerNavState obj = new PlayerNavState
{
CurrentTerritoryId = _206F_206D_202D_206C_202E_200E_202A_206C_206C_206D_202D_200B_202D_202C_200C_202D_202C_206D_200E_206D_202C_206A_200B_202D_200B_206C_200B_200C_200E_206E_200E_200F_206E_202B_202E_206A_200C_206A_206E_206B_202E(clientState),
CurrentPosition = _206E_206B_200F_200B_206D_202B_202E_200E_200C_202D_200E_202B_200F_206D_200B_206A_206C_206D_206A_202B_202C_206E_206E_202C_206B_202C_206B_200C_200C_206D_206C_202D_206B_206B_206C_202D_202B_206D_202E(gameObject),
Gil = currentGil,
GilReserve = (gilReserveOverride ?? playerContext.GilReserve),
TeleportUnlocked = playerContext.IsTeleportUnlocked(),
ReturnAvailable = playerContext.IsReturnAvailable(),
MountUnlocked = _202C_200C_202D_206E_206F_202A_200C_202C_206D_206E_202E_200E_206A_200E_202C_200F_206D_200E_200D_202C_202C_202A_200F_202E_206A_206E_206A_206A_206C_202B_206B_206A_200B_202E_206E_200B_202D_202B_206C_200F_202E(),
UnlockedAetherytes = hashSet,
HomeAetheryte = homeAetheryte,
FreeAetheryte = freeAetheryte,
TeleportCosts = dictionary,
FlyingUnlockedTerritories = flyingUnlockedTerritories,
MountSpeedLevels = mountSpeedLevels,
MaxExpansion = maxExpansion
};
ICharacter obj2 = gameObject as ICharacter;
obj.CurrentLevel = ((obj2 != null) ? _200B_202C_202B_202D_206F_206B_206C_200F_206D_206E_200D_200B_202D_202E_202B_202C_206A_206C_202A_200D_202B_206E_200E_206F_202E_206E_200F_200D_200E_206C_202C_206C_202A_202E_206B_200F_206E_202B_202E_202E_202E(obj2) : 0);
obj.CurrentMsqQuestId = playerContext.CurrentMsqQuestId;
obj.PreferFreeTravel = playerContext.PreferFreeTravel;
obj.QuestCompleteChecker = delegate(uint rowId)
{
int num18 = 65535;
return QuestManager.IsQuestComplete((ushort)((rowId | (uint)num18) - (rowId ^ (uint)num18)));
};
obj.QuestSequenceChecker = delegate(uint rowId)
{
int num18 = 65535;
return QuestManager.GetQuestSequence((ushort)((rowId | (uint)num18) - (rowId ^ (uint)num18)));
};
obj.AvailableTeleportTickets = BuildAvailableTeleportTickets();
return obj;
}
}
continue;
IL_0057:
num = 1190878111;
}
}
private unsafe HashSet<uint> BuildAvailableTeleportTickets()
{
HashSet<uint> hashSet = new HashSet<uint>();
int num = (playerContext.UseTeleportTickets ? 339924904 : 339924909);
InventoryManager* ptr = default(InventoryManager*);
TeleportTicketService.TeleportTicket current = default(TeleportTicketService.TeleportTicket);
while (true)
{
int num2 = num;
int num3 = 339924908;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
return hashSet;
case 4:
ptr = InventoryManager.Instance();
num = ((ptr != null) ? 339924911 : 339924908);
break;
case 1:
return hashSet;
case 2:
num = 339924909;
break;
case 3:
{
byte b = _206E_202C_202E_206F_206F_200B_206B_202E_200C_200E_202D_206B_206F_200D_200F_206A_206C_200C_200E_202C_206D_200D_202D_202D_206D_206C_200D_200F_202C_200C_206B_202D_206F_202B_206A_200C_202D_200E_206A_202B_202E();
IEnumerator<TeleportTicketService.TeleportTicket> enumerator = teleportTicketService.Tickets.GetEnumerator();
try
{
num = 1253116756;
while (true)
{
int num5 = num;
num3 = 1253116758;
num4 = num5;
int num6 = num4 + num3;
int num7 = num4 & num3;
switch (num6 - (num7 + num7))
{
case 5:
num = 1253116756;
break;
case 3:
num = ((ptr->GetInventoryItemCount(current.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0) <= 0) ? 1253116756 : 1253116752);
break;
case 0:
num = ((current.RequiredGrandCompany != b) ? 1253116756 : 1253116754);
break;
case 8:
num = ((!QuestManager.IsQuestComplete((ushort)(current.RequiredQuestId & 0xFFFF))) ? 1253116756 : 1253116757);
break;
case 2:
num = (_200F_200B_206B_200F_200E_202B_200F_202B_206B_202D_202A_206E_200F_200E_202E_206C_206D_202E_206F_202E_206B_202D_202D_202B_202D_202C_202C_206E_202C_200D_202A_200E_206D_200B_202E_200F_206E_206E_200D_206C_202E((IEnumerator)enumerator) ? 1253116759 : 1253116753);
break;
case 4:
num = ((current.RequiredQuestId == 0) ? 1253116757 : 1253116766);
break;
case 6:
hashSet.Add(current.ItemId);
num = 1253116756;
break;
case 1:
current = enumerator.Current;
num = ((current.RequiredGrandCompany == 0) ? 1253116754 : 1253116758);
break;
case 7:
return hashSet;
}
}
}
finally
{
num = ((enumerator == null) ? (-2039650) : (-2039651));
while (true)
{
int num8 = num;
num3 = -2039649;
num4 = num8;
int num9 = num4 + num3;
int num10 = num4 & num3;
switch (num9 - (num10 + num10))
{
case 0:
num = -2039651;
break;
case 2:
_202B_200E_206C_200E_200E_206E_202B_200C_202B_200B_206D_202E_200C_200F_206C_202D_200D_202A_200E_206B_202B_206B_202A_200C_206D_200D_206E_202C_202B_206E_206A_200B_206D_200E_202A_202D_200B_206F_200C_202E((IDisposable)enumerator);
num = -2039650;
break;
case 1:
goto end_IL_0241;
}
continue;
end_IL_0241:
break;
}
}
}
}
}
}
private HashSet<uint> BuildFlyingUnlockedSet()
{
HashSet<uint> hashSet = new HashSet<uint>();
HashSet<uint> hashSet2 = new HashSet<uint>();
IEnumerator<EAetheryteLocation> enumerator = aetheryteData.Locations.Keys.GetEnumerator();
try
{
int num = -1033431506;
ushort value = default(ushort);
while (true)
{
int num2 = num;
int num3 = -1033431507;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
hashSet.Add(value);
num = -1033431506;
break;
case 3:
num = (_200F_200B_206B_200F_200E_202B_200F_202B_206B_202D_202A_206E_200F_200E_202E_206C_206D_202E_206F_202E_206B_202D_202D_202B_202D_202C_202C_206E_202C_200D_202A_200E_206D_200B_202E_200F_206E_206E_200D_206C_202E((IEnumerator)enumerator) ? (-1033431511) : (-1033431507));
break;
case 1:
num = ((!playerContext.IsFlyingUnlocked(value)) ? (-1033431506) : (-1033431505));
break;
case 4:
{
EAetheryteLocation current = enumerator.Current;
num = ((!aetheryteData.TerritoryIds.TryGetValue(current, out value)) ? (-1033431506) : (-1033431512));
break;
}
case 6:
num = -1033431506;
break;
case 5:
num = ((!hashSet2.Add(value)) ? (-1033431506) : (-1033431508));
break;
case 0:
return hashSet;
}
}
}
finally
{
int num = ((enumerator == null) ? 115549312 : 115549315);
while (true)
{
int num5 = num;
int num3 = 115549313;
int num4 = num5;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = 115549315;
break;
case 1:
goto end_IL_0157;
case 2:
_202B_200E_206C_200E_200E_206E_202B_200C_202B_200B_206D_202E_200C_200F_206C_202D_200D_202A_200E_206B_202B_206B_202A_200C_206D_200D_206E_202C_202B_206E_206A_200B_206D_200E_202A_202D_200B_206F_200C_202E((IDisposable)enumerator);
num = 115549312;
break;
}
continue;
end_IL_0157:
break;
}
}
}
private unsafe Dictionary<uint, int> BuildMountSpeedLevels()
{
Dictionary<uint, int> dictionary = new Dictionary<uint, int>();
ExcelSheet<TerritoryType> excelSheet = dataManager.GetExcelSheet<TerritoryType>();
int num = ((excelSheet != null) ? 2051337213 : 2051337214);
MountSpeed value = default(MountSpeed);
TerritoryType current = default(TerritoryType);
int num8 = default(int);
while (true)
{
int num2 = num;
int num3 = 2051337215;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
goto IL_0068;
case 1:
return dictionary;
case 2:
{
UIState* ptr = UIState.Instance();
using ExcelSheet<TerritoryType>.Enumerator enumerator = excelSheet.GetEnumerator();
num = 667862093;
while (true)
{
int num7 = num;
num3 = 667862084;
num4 = num7;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
num = 667862093;
break;
case 0:
value = current.MountSpeed.Value;
num8 = 0;
num = ((value.Quest.RowId == 0) ? 667862082 : 667862080);
break;
case 6:
num = ((value.Unknown0 == 0) ? 667862087 : 667862083);
break;
case 14:
dictionary[current.RowId] = num8;
num = 667862093;
break;
case 8:
num = ((current.MountSpeed.RowId == 0) ? 667862093 : 667862084);
break;
case 7:
num = ((ptr == null) ? 667862087 : 667862095);
break;
case 9:
num = (enumerator.MoveNext() ? 667862088 : 667862094);
break;
case 3:
num = ((num8 <= 0) ? 667862093 : 667862090);
break;
case 12:
current = enumerator.Current;
num = ((current.RowId == 0) ? 667862093 : 667862092);
break;
case 5:
{
int num12 = num8;
num3 = 1;
num4 = num12;
num8 = (num4 | num3) + (num4 & num3);
num = 667862087;
break;
}
case 1:
num = ((!ptr->IsUnlockLinkUnlockedOrQuestCompleted(value.Quest.RowId, 0)) ? 667862082 : 667862089);
break;
case 11:
num = ((!ptr->IsUnlockLinkUnlockedOrQuestCompleted(value.Unknown0, 0)) ? 667862087 : 667862081);
break;
case 13:
{
int num9 = num8;
num3 = 1;
num4 = num9;
int num10 = num4 ^ num3;
int num11 = num4 & num3;
num8 = num10 + (num11 + num11);
num = 667862082;
break;
}
case 4:
num = ((ptr == null) ? 667862082 : 667862085);
break;
case 10:
return dictionary;
}
}
}
}
continue;
IL_0068:
num = 2051337214;
}
}
private unsafe static int GetCurrentGil()
{
InventoryManager* ptr = InventoryManager.Instance();
int num = ((ptr != null) ? (-57715473) : (-57715476));
while (true)
{
int num2 = num;
int num3 = -57715475;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
goto IL_004b;
case 1:
return 0;
case 2:
return ptr->GetItemCountInContainer(1u, InventoryType.Currency, isHq: false, 0);
}
continue;
IL_004b:
num = -57715476;
}
}
static IGameObject _206E_202E_200C_206A_202C_202C_206E_202E_206C_202A_206D_202D_206B_206B_202B_206D_206C_206C_206D_206A_206E_200F_206A_206C_200D_206B_200E_206A_206E_206B_206D_202B_202A_206F_202A_202B_202D_202C_206E_202A_202E(IObjectTable P_0, int P_1)
{
return P_0[P_1];
}
static uint _200D_200E_202C_202E_206F_200E_202C_206F_200F_200C_206C_200D_200F_200E_202B_200C_202B_200F_200C_200F_206D_206F_202B_206B_202D_200E_200D_206E_206F_202E_206D_202C_202B_200C_200B_206D_206D_202A_206E_206B_202E()
{
return PlayerStateHelper.GetHomeAetheryteId();
}
static byte _202A_200E_200B_200F_206A_202C_202A_206D_202C_206A_202C_206F_202C_202B_206E_206A_202A_200E_200D_206C_202B_200D_206E_200D_206D_200F_206A_202D_202C_206F_200D_200C_206B_206B_206A_206E_200E_200E_206A_202B_202E()
{
return PlayerStateHelper.GetMaxExpansion();
}
static uint _200C_200D_202E_202B_206B_202A_206C_202E_206D_202D_206A_206A_202A_206F_202D_200F_202A_206B_206A_206F_200B_202C_206E_206B_200D_200D_200E_206B_202C_206D_206A_200F_202B_202A_200D_202B_206C_206D_200F_200D_202E(IAetheryteEntry P_0)
{
return P_0.AetheryteId;
}
static uint _202B_206D_202D_200B_200B_200C_206B_200E_200B_202A_200D_206E_202D_200B_206F_206B_200D_202E_200E_206E_202E_200D_206F_206D_206A_200F_206E_200C_202D_202D_206C_206D_202E_200B_200D_206F_202D_200B_206E_200D_202E(IAetheryteEntry P_0)
{
return P_0.GilCost;
}
static bool _200F_200B_206B_200F_200E_202B_200F_202B_206B_202D_202A_206E_200F_200E_202E_206C_206D_202E_206F_202E_206B_202D_202D_202B_202D_202C_202C_206E_202C_200D_202A_200E_206D_200B_202E_200F_206E_206E_200D_206C_202E(IEnumerator P_0)
{
return P_0.MoveNext();
}
static void _202B_200E_206C_200E_200E_206E_202B_200C_202B_200B_206D_202E_200C_200F_206C_202D_200D_202A_200E_206B_202B_206B_202A_200C_206D_200D_206E_202C_202B_206E_206A_200B_206D_200E_202A_202D_200B_206F_200C_202E(IDisposable P_0)
{
P_0.Dispose();
}
static bool _206D_200C_206C_206D_200F_202A_206C_206D_200D_200E_202C_206D_200C_202E_200C_202E_200E_202C_206F_206C_206A_206C_200B_202E_202C_206B_200E_200B_202D_206D_200F_202D_200C_200E_200C_200F_200B_202C_206C_200D_202E(uint P_0)
{
return PlayerStateHelper.IsFreeAetheryte(P_0);
}
static uint _206F_206D_202D_206C_202E_200E_202A_206C_206C_206D_202D_200B_202D_202C_200C_202D_202C_206D_200E_206D_202C_206A_200B_202D_200B_206C_200B_200C_200E_206E_200E_200F_206E_202B_202E_206A_200C_206A_206E_206B_202E(IClientState P_0)
{
return P_0.TerritoryType;
}
static Vector3 _206E_206B_200F_200B_206D_202B_202E_200E_200C_202D_200E_202B_200F_206D_200B_206A_206C_206D_206A_202B_202C_206E_206E_202C_206B_202C_206B_200C_200C_206D_206C_202D_206B_206B_206C_202D_202B_206D_202E(IGameObject P_0)
{
return P_0.Position;
}
static bool _202C_200C_202D_206E_206F_202A_200C_202C_206D_206E_202E_200E_206A_200E_202C_200F_206D_200E_200D_202C_202C_202A_200F_202E_206A_206E_206A_206A_206C_202B_206B_206A_200B_202E_206E_200B_202D_202B_206C_200F_202E()
{
return PlayerStateHelper.IsAnyMountUnlocked();
}
static byte _200B_202C_202B_202D_206F_206B_206C_200F_206D_206E_200D_200B_202D_202E_202B_202C_206A_206C_202A_200D_202B_206E_200E_206F_202E_206E_200F_200D_200E_206C_202C_206C_202A_202E_206B_200F_206E_202B_202E_202E_202E(ICharacter P_0)
{
return P_0.Level;
}
static byte _206E_202C_202E_206F_206F_200B_206B_202E_200C_200E_202D_206B_206F_200D_200F_206A_206C_200C_200E_202C_206D_200D_202D_202D_206D_206C_200D_200F_202C_200C_206B_202D_206F_202B_206A_200C_202D_200E_206A_202B_202E()
{
return GrandCompanyHelper.GetGrandCompanyId();
}
}

View file

@ -0,0 +1,462 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Text;
namespace SmartNav;
public abstract record ReRouteDecision
{
public sealed record Replan(IReadOnlyList<NavInstruction> Instructions) : ReRouteDecision()
{
[CompilerGenerated]
protected override Type EqualityContract
{
[CompilerGenerated]
get
{
return _202E_200B_206E_202C_200E_202C_200B_200E_206A_200B_206E_206A_202C_202E_202B_202E_202D_202E_206B_206B_200E_206E_200C_202A_202C_200F_206B_202E_206B_200F_202A_200F_200D_202C_200D_202D_200D_200E_206F_202C_202E(typeof(Replan).TypeHandle);
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _206A_200D_206A_202D_200E_202C_202C_206C_200C_206C_206F_202B_202D_200C_202B_202A_206D_206D_200C_206A_200B_202D_206E_206C_206B_200C_202E_206B_202C_202B_200E_200E_206E_206A_200B_200C_206F_200E_206E_202C_202E();
_200B_206A_206F_206B_200B_200C_200D_206E_206C_206D_200D_200E_200C_202C_200C_200E_202B_202B_206B_206D_202D_200B_202A_206C_200C_202B_206C_202A_200E_206F_202C_202D_202E_206B_200F_200F_202C_202C_200E_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(901484357));
_200B_206A_206F_206B_200B_200C_200D_206E_206C_206D_200D_200E_200C_202C_200C_200E_202B_202B_206B_206D_202D_200B_202A_206C_200C_202B_206C_202A_200E_206F_202C_202D_202E_206B_200F_200F_202C_202C_200E_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1886515922));
int num = ((!PrintMembers(stringBuilder)) ? 1327623448 : 1327623451);
while (true)
{
int num2 = num;
int num3 = 1327623450;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = 1327623451;
break;
case 2:
_200E_202E_206D_202A_206F_200E_206A_200D_206F_206B_200F_202C_206D_206A_206C_202C_206E_206E_202C_206F_200C_202E_206F_200F_202A_202D_206D_202B_200D_202A_202A_202E_206B_202D_200E_206A_202B_200F_206C_206E_202E(stringBuilder, '}');
return _206F_206A_202A_206A_200C_200F_200F_206E_202E_202A_206A_200C_206D_206B_200B_200B_200E_202B_206D_202A_206C_202D_202B_206B_206D_202D_206A_202A_200D_206F_200B_202E_202D_202B_206E_200B_200F_206A_202D_206B_202E((object)stringBuilder);
case 1:
_200E_202E_206D_202A_206F_200E_206A_200D_206F_206B_200F_202C_206D_206A_206C_202C_206E_206E_202C_206F_200C_202E_206F_200F_202A_202D_206D_202B_200D_202A_202A_202E_206B_202D_200E_206A_202B_200F_206C_206E_202E(stringBuilder, ' ');
num = 1327623448;
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
protected override bool PrintMembers(StringBuilder builder)
{
int num = ((!base.PrintMembers(builder)) ? 1920917747 : 1920917746);
while (true)
{
int num2 = num;
int num3 = 1920917747;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
num = 1920917746;
break;
case 0:
_200B_206A_206F_206B_200B_200C_200D_206E_206C_206D_200D_200E_200C_202C_200C_200E_202B_202B_206B_206D_202D_200B_202A_206C_200C_202B_206C_202A_200E_206F_202C_202D_202E_206B_200F_200F_202C_202C_200E_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-15988092));
_200D_200D_200F_200C_200D_202C_206F_206F_200C_206F_200E_202A_200F_202C_200F_206D_200D_200F_200E_202C_202D_202B_206E_200F_200B_206D_202A_206C_206A_202B_200B_206B_206C_200B_206E_202B_200E_206B_202C_206C_202E(builder, (object)Instructions);
return true;
case 1:
_200B_206A_206F_206B_200B_200C_200D_206E_206C_206D_200D_200E_200C_202C_200C_200E_202B_202B_206B_206D_202D_200B_202A_206C_200C_202B_206C_202A_200E_206F_202C_202D_202E_206B_200F_200F_202C_202C_200E_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(520781629));
num = 1920917747;
break;
}
}
}
[CompilerGenerated]
public bool Equals(Replan? other)
{
int num = (((object)this == other) ? (-1432120076) : (-1432120078));
while (true)
{
int num2 = num;
int num3 = -1432120080;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 1:
return EqualityComparer<IReadOnlyList<NavInstruction>>.Default.Equals(Instructions, other.Instructions);
case 4:
return true;
case 3:
num = -1432120078;
break;
case 0:
return false;
case 2:
num = ((!base.Equals(other)) ? (-1432120080) : (-1432120079));
break;
}
}
}
bool IEquatable<Replan>.Equals(Replan? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type _202E_200B_206E_202C_200E_202C_200B_200E_206A_200B_206E_206A_202C_202E_202B_202E_202D_202E_206B_206B_200E_206E_200C_202A_202C_200F_206B_202E_206B_200F_202A_200F_200D_202C_200D_202D_200D_200E_206F_202C_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder _206A_200D_206A_202D_200E_202C_202C_206C_200C_206C_206F_202B_202D_200C_202B_202A_206D_206D_200C_206A_200B_202D_206E_206C_206B_200C_202E_206B_202C_202B_200E_200E_206E_206A_200B_200C_206F_200E_206E_202C_202E()
{
return new StringBuilder();
}
static StringBuilder _200B_206A_206F_206B_200B_200C_200D_206E_206C_206D_200D_200E_200C_202C_200C_200E_202B_202B_206B_206D_202D_200B_202A_206C_200C_202B_206C_202A_200E_206F_202C_202D_202E_206B_200F_200F_202C_202C_200E_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _200E_202E_206D_202A_206F_200E_206A_200D_206F_206B_200F_202C_206D_206A_206C_202C_206E_206E_202C_206F_200C_202E_206F_200F_202A_202D_206D_202B_200D_202A_202A_202E_206B_202D_200E_206A_202B_200F_206C_206E_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _206F_206A_202A_206A_200C_200F_200F_206E_202E_202A_206A_200C_206D_206B_200B_200B_200E_202B_206D_202A_206C_202D_202B_206B_206D_202D_206A_202A_200D_206F_200B_202E_202D_202B_206E_200B_200F_206A_202D_206B_202E(object P_0)
{
return P_0.ToString();
}
static StringBuilder _200D_200D_200F_200C_200D_202C_206F_206F_200C_206F_200E_202A_200F_202C_200F_206D_200D_200F_200E_202C_202D_202B_206E_200F_200B_206D_202A_206C_206A_202B_200B_206B_206C_200B_206E_202B_200E_206B_202C_206C_202E(StringBuilder P_0, object P_1)
{
return P_0.Append(P_1);
}
static bool _206B_206F_202E_200D_200E_200E_200E_206B_206E_202E_206D_200C_206E_200E_206C_200D_202E_200F_200C_200B_202E_206B_206D_200C_206B_206C_206B_206C_206C_202E_206F_200C_200C_200B_202D_206D_202C_202B_206F_200E_202E(object P_0, object P_1)
{
return P_0.Equals(P_1);
}
}
public sealed record SkipMovement : ReRouteDecision
{
[CompilerGenerated]
protected override Type EqualityContract
{
[CompilerGenerated]
get
{
return _206E_206D_202D_206C_202A_206C_202B_200F_202E_200F_206B_206B_206B_202D_200D_200E_206F_200B_206F_206A_206D_206D_206D_206E_206A_206A_206C_200E_206C_206A_206A_202B_202E_206E_206E_200D_200B_206B_206E_202E_202E(typeof(SkipMovement).TypeHandle);
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _206D_202A_200E_200F_202D_200C_200C_200B_206E_202C_206F_206F_206F_200D_206C_206C_200E_200D_202E_206B_200E_202A_206A_206B_200F_200B_202E_200F_200B_200B_202B_206B_202E_200E_202B_206D_202B_206C_202A_202A_202E();
_206F_206C_202E_202E_200E_200C_200B_206F_206E_200E_200D_206C_200D_206E_200F_200E_200C_206A_200D_206D_202D_206D_202D_200D_202E_200D_206E_206D_200E_206D_202B_202A_206E_202D_206A_200E_200D_202D_206C_206D_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-187513109));
_206F_206C_202E_202E_200E_200C_200B_206F_206E_200E_200D_206C_200D_206E_200F_200E_200C_206A_200D_206D_202D_206D_202D_200D_202E_200D_206E_206D_200E_206D_202B_202A_206E_202D_206A_200E_200D_202D_206C_206D_202E(stringBuilder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1120247710));
int num = ((!PrintMembers(stringBuilder)) ? 321527536 : 321527539);
while (true)
{
int num2 = num;
int num3 = 321527537;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 1:
_206C_202D_202A_200B_202D_200B_200D_200E_202B_202E_206E_202B_202B_202B_206C_200D_200B_206A_206A_206A_202E_200B_200C_206F_206B_200C_202B_206D_206E_200C_206F_202B_206A_200D_206E_202B_202A_202E_202B_206E_202E(stringBuilder, '}');
return _206D_200B_206A_202A_206E_202B_206E_206C_206E_206C_206B_206B_200F_206A_202B_200D_200F_206C_202E_200D_200F_206A_200F_206C_202A_200F_200E_202E_200E_202D_202A_202A_206B_206E_202C_202A_200B_202B_206A_202D_202E((object)stringBuilder);
case 2:
_206C_202D_202A_200B_202D_200B_200D_200E_202B_202E_206E_202B_202B_202B_206C_200D_200B_206A_206A_206A_202E_200B_200C_206F_206B_200C_202B_206D_206E_200C_206F_202B_206A_200D_206E_202B_202A_202E_202B_206E_202E(stringBuilder, ' ');
num = 321527536;
break;
case 0:
num = 321527539;
break;
}
}
}
[CompilerGenerated]
public bool Equals(SkipMovement? other)
{
int num = (((object)this == other) ? (-1667378002) : (-1667378003));
while (true)
{
int num2 = num;
int num3 = -1667378001;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 1:
return true;
case 2:
return base.Equals(other);
case 0:
goto IL_004c;
}
continue;
IL_004c:
num = -1667378003;
}
}
bool IEquatable<SkipMovement>.Equals(SkipMovement? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type _206E_206D_202D_206C_202A_206C_202B_200F_202E_200F_206B_206B_206B_202D_200D_200E_206F_200B_206F_206A_206D_206D_206D_206E_206A_206A_206C_200E_206C_206A_206A_202B_202E_206E_206E_200D_200B_206B_206E_202E_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder _206D_202A_200E_200F_202D_200C_200C_200B_206E_202C_206F_206F_206F_200D_206C_206C_200E_200D_202E_206B_200E_202A_206A_206B_200F_200B_202E_200F_200B_200B_202B_206B_202E_200E_202B_206D_202B_206C_202A_202A_202E()
{
return new StringBuilder();
}
static StringBuilder _206F_206C_202E_202E_200E_200C_200B_206F_206E_200E_200D_206C_200D_206E_200F_200E_200C_206A_200D_206D_202D_206D_202D_200D_202E_200D_206E_206D_200E_206D_202B_202A_206E_202D_206A_200E_200D_202D_206C_206D_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _206C_202D_202A_200B_202D_200B_200D_200E_202B_202E_206E_202B_202B_202B_206C_200D_200B_206A_206A_206A_202E_200B_200C_206F_206B_200C_202B_206D_206E_200C_206F_202B_206A_200D_206E_202B_202A_202E_202B_206E_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _206D_200B_206A_202A_206E_202B_206E_206C_206E_206C_206B_206B_200F_206A_202B_200D_200F_206C_202E_200D_200F_206A_200F_206C_202A_200F_200E_202E_200E_202D_202A_202A_206B_206E_202C_202A_200B_202B_206A_202D_202E(object P_0)
{
return P_0.ToString();
}
static bool _202B_206B_200F_200B_206E_200D_202C_200C_200C_200B_200D_202B_200B_206A_202D_200D_200E_202A_206D_206A_206C_200E_200F_206A_206D_206D_206E_206E_200E_200C_206E_200B_200D_206C_206D_202B_206E_202B_206B_206A_202E(object P_0, object P_1)
{
return P_0.Equals(P_1);
}
}
public sealed record GiveUp : ReRouteDecision
{
[CompilerGenerated]
protected override Type EqualityContract
{
[CompilerGenerated]
get
{
return _202D_200F_206C_200B_200C_206D_200C_200C_206A_206C_202E_206D_202C_206D_202A_206C_202D_206A_206C_200D_200E_206E_200D_206A_200E_206C_206D_202E_202C_200B_202B_206A_202C_206C_200D_206E_202B_206B_206C_202A_202E(typeof(GiveUp).TypeHandle);
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _200D_200D_202E_200D_200F_202B_206D_206F_206D_200B_206B_202D_202A_206A_202C_206D_200D_200F_202D_206C_200E_206F_202A_206A_200B_206D_200D_200C_200E_200C_202B_206F_202C_202E_206A_206C_200E_206C_202C_202A_202E();
_200D_202D_202A_202C_206D_202E_206E_206E_202A_206D_200C_200C_200E_200C_206D_200B_202E_206B_206E_206B_200C_200B_206C_206E_206E_202C_202D_202A_200C_200E_200C_200B_202B_206F_206D_202B_202B_200C_200B_202D_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1991461839));
_200D_202D_202A_202C_206D_202E_206E_206E_202A_206D_200C_200C_200E_200C_206D_200B_202E_206B_206E_206B_200C_200B_206C_206E_206E_202C_202D_202A_200C_200E_200C_200B_202B_206F_206D_202B_202B_200C_200B_202D_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1547267250));
int num = ((!PrintMembers(stringBuilder)) ? (-1750477906) : (-1750477905));
while (true)
{
int num2 = num;
int num3 = -1750477906;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
_200D_202E_206D_202B_202C_200B_206F_206B_200C_202A_202B_200E_200B_200D_200D_200F_202E_206A_200B_206A_202D_200B_206D_200F_206C_202D_202D_202D_206C_200C_206F_206B_200F_200D_206A_206E_200C_206D_200B_200E_202E(stringBuilder, '}');
return _200F_202C_206C_202B_200F_206A_202E_206E_206A_202A_200C_202D_202C_206B_200E_202A_202A_206B_206C_206D_200C_200B_202D_202D_206E_200B_206D_200C_206C_206C_206C_206F_200C_202B_206E_206A_206E_206E_206E_202B_202E((object)stringBuilder);
case 1:
_200D_202E_206D_202B_202C_200B_206F_206B_200C_202A_202B_200E_200B_200D_200D_200F_202E_206A_200B_206A_202D_200B_206D_200F_206C_202D_202D_202D_206C_200C_206F_206B_200F_200D_206A_206E_200C_206D_200B_200E_202E(stringBuilder, ' ');
num = -1750477906;
break;
case 2:
num = -1750477905;
break;
}
}
}
[CompilerGenerated]
public bool Equals(GiveUp? other)
{
int num = (((object)this == other) ? 639070582 : 639070581);
while (true)
{
int num2 = num;
int num3 = 639070583;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
goto IL_0044;
case 2:
return base.Equals(other);
case 1:
return true;
}
continue;
IL_0044:
num = 639070581;
}
}
bool IEquatable<GiveUp>.Equals(GiveUp? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type _202D_200F_206C_200B_200C_206D_200C_200C_206A_206C_202E_206D_202C_206D_202A_206C_202D_206A_206C_200D_200E_206E_200D_206A_200E_206C_206D_202E_202C_200B_202B_206A_202C_206C_200D_206E_202B_206B_206C_202A_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder _200D_200D_202E_200D_200F_202B_206D_206F_206D_200B_206B_202D_202A_206A_202C_206D_200D_200F_202D_206C_200E_206F_202A_206A_200B_206D_200D_200C_200E_200C_202B_206F_202C_202E_206A_206C_200E_206C_202C_202A_202E()
{
return new StringBuilder();
}
static StringBuilder _200D_202D_202A_202C_206D_202E_206E_206E_202A_206D_200C_200C_200E_200C_206D_200B_202E_206B_206E_206B_200C_200B_206C_206E_206E_202C_202D_202A_200C_200E_200C_200B_202B_206F_206D_202B_202B_200C_200B_202D_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _200D_202E_206D_202B_202C_200B_206F_206B_200C_202A_202B_200E_200B_200D_200D_200F_202E_206A_200B_206A_202D_200B_206D_200F_206C_202D_202D_202D_206C_200C_206F_206B_200F_200D_206A_206E_200C_206D_200B_200E_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _200F_202C_206C_202B_200F_206A_202E_206E_206A_202A_200C_202D_202C_206B_200E_202A_202A_206B_206C_206D_200C_200B_202D_202D_206E_200B_206D_200C_206C_206C_206C_206F_200C_202B_206E_206A_206E_206E_206E_202B_202E(object P_0)
{
return P_0.ToString();
}
static bool _202C_206A_206B_200D_202E_206D_202A_200C_206E_206A_206A_202D_206B_200E_202E_206B_200F_200C_202A_206A_200D_206C_200D_206C_206F_202C_202B_206D_206C_200C_202D_202E_200C_202C_206A_200D_200F_202B_202E_202D_202E(object P_0, object P_1)
{
return P_0.Equals(P_1);
}
}
[CompilerGenerated]
protected virtual Type EqualityContract
{
[CompilerGenerated]
get
{
return _202E_206B_206C_202D_206F_200C_202B_206F_200B_202A_202B_206C_202C_202A_200F_200D_200F_206E_206A_206D_206F_200B_206D_200D_202B_206B_206D_206F_200E_206E_200D_206A_206B_202D_206D_206E_206E_200D_200E_202E_202E(typeof(ReRouteDecision).TypeHandle);
}
}
private ReRouteDecision()
{
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _206E_206A_206F_200B_202A_200E_206E_200E_200C_202A_206F_202C_206C_206F_206E_206F_206C_206D_202D_202C_206A_202E_206A_200C_202C_200D_200B_206B_200F_200B_206F_202E_202D_200C_200E_200B_202B_202A_200C_200D_202E();
_206A_206E_202D_200D_202B_206E_202A_200C_206D_200B_200F_200E_206A_206A_202B_206E_206C_200D_206C_206C_200D_200E_200C_200B_206D_206D_200C_206C_202D_206A_200E_206F_200F_200C_200B_202A_200C_200B_200B_202D_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1884726920));
_206A_206E_202D_200D_202B_206E_202A_200C_206D_200B_200F_200E_206A_206A_202B_206E_206C_200D_206C_206C_200D_200E_200C_200B_206D_206D_200C_206C_202D_206A_200E_206F_200F_200C_200B_202A_200C_200B_200B_202D_202E(stringBuilder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1120247710));
int num = ((!PrintMembers(stringBuilder)) ? 1070703260 : 1070703263);
while (true)
{
int num2 = num;
int num3 = 1070703262;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
_206C_202E_202A_206A_206A_202E_200B_200F_202A_200F_202A_200E_206E_202E_202A_200E_200C_206F_206D_202A_200F_206C_200B_206D_202E_206E_206C_206A_206D_206D_206A_206E_202C_206C_206B_200B_206B_200C_200B_202E_202E(stringBuilder, '}');
return _200B_206A_200E_202D_206A_202B_200D_202E_200B_200C_202B_200F_206E_200B_200E_200B_202E_202D_200F_206A_206D_200C_202C_206B_206B_202A_202E_200C_206D_206E_200E_200F_200B_200F_200D_206E_202B_200F_202A_202E((object)stringBuilder);
case 1:
_206C_202E_202A_206A_206A_202E_200B_200F_202A_200F_202A_200E_206E_202E_202A_200E_200C_206F_206D_202A_200F_206C_200B_206D_202E_206E_206C_206A_206D_206D_206A_206E_202C_206C_206B_200B_206B_200C_200B_202E_202E(stringBuilder, ' ');
num = 1070703260;
break;
case 0:
num = 1070703263;
break;
}
}
}
[CompilerGenerated]
public virtual bool Equals(ReRouteDecision? other)
{
int num = (((object)this == other) ? (-390682939) : (-390682942));
while (true)
{
int num2 = num;
int num3 = -390682938;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
num = -390682942;
break;
case 1:
return _206C_206C_200B_200B_200B_206C_200C_200E_206B_202D_200D_200F_202E_202E_202C_206B_202C_200C_200E_202E_206C_200F_206B_206F_202B_206D_202E_200E_202B_202B_200E_202E_206A_200E_200B_206F_200D_206A_206A_202E(EqualityContract, other.EqualityContract);
case 4:
num = (((object)other == null) ? (-390682940) : (-390682937));
break;
case 2:
return false;
case 3:
return true;
}
}
}
bool IEquatable<ReRouteDecision>.Equals(ReRouteDecision? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type _202E_206B_206C_202D_206F_200C_202B_206F_200B_202A_202B_206C_202C_202A_200F_200D_200F_206E_206A_206D_206F_200B_206D_200D_202B_206B_206D_206F_200E_206E_200D_206A_206B_202D_206D_206E_206E_200D_200E_202E_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder _206E_206A_206F_200B_202A_200E_206E_200E_200C_202A_206F_202C_206C_206F_206E_206F_206C_206D_202D_202C_206A_202E_206A_200C_202C_200D_200B_206B_200F_200B_206F_202E_202D_200C_200E_200B_202B_202A_200C_200D_202E()
{
return new StringBuilder();
}
static StringBuilder _206A_206E_202D_200D_202B_206E_202A_200C_206D_200B_200F_200E_206A_206A_202B_206E_206C_200D_206C_206C_200D_200E_200C_200B_206D_206D_200C_206C_202D_206A_200E_206F_200F_200C_200B_202A_200C_200B_200B_202D_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _206C_202E_202A_206A_206A_202E_200B_200F_202A_200F_202A_200E_206E_202E_202A_200E_200C_206F_206D_202A_200F_206C_200B_206D_202E_206E_206C_206A_206D_206D_206A_206E_202C_206C_206B_200B_206B_200C_200B_202E_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _200B_206A_200E_202D_206A_202B_200D_202E_200B_200C_202B_200F_206E_200B_200E_200B_202E_202D_200F_206A_206D_200C_202C_206B_206B_202A_202E_200C_206D_206E_200E_200F_200B_200F_200D_206E_202B_200F_202A_202E(object P_0)
{
return P_0.ToString();
}
static bool _206C_206C_200B_200B_200B_206C_200C_200E_206B_202D_200D_200F_202E_202E_202C_206B_202C_200C_200E_202E_206C_200F_206B_206F_202B_206D_202E_200E_202B_202B_200E_202E_206A_200E_200B_206F_200D_206A_206A_202E(Type P_0, Type P_1)
{
return P_0 == P_1;
}
}

View file

@ -0,0 +1,188 @@
using System;
using System.Collections.Generic;
using System.Numerics;
using System.Runtime.CompilerServices;
using Microsoft.Extensions.Logging;
namespace SmartNav;
public sealed class ReRoutePolicy(NavRouter navRouter, PlayerNavStateBuilder playerNavStateBuilder, RouteInstructionBuilder instructionBuilder, WarpFailureTracker warpFailureTracker, ILogger<ReRoutePolicy> logger)
{
private uint _destinationTerritoryId;
private Vector3 _destinationPosition;
private bool _hasDestination;
private int _reRouteCount;
private readonly HashSet<string> _penalizedTargets = new HashSet<string>();
private const int MaxReRoutes = 3;
[MethodImpl(MethodImplOptions.NoInlining)]
public void SetDestination(uint territoryId, Vector3 position)
{
int num = ((!_hasDestination) ? 887432114 : 887432119);
while (true)
{
int num2 = num;
int num3 = 887432118;
int num4 = num2;
int num5;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num5 = ((Vector3.DistanceSquared(_destinationPosition, position) < 1f) ? 1 : 0);
goto IL_00d1;
case 2:
_202D_206B_200F_202E_206E_206B_202D_202D_206F_200B_206B_206F_200E_206E_200B_202E_206B_200F_202A_206F_206B_202A_202C_202D_206A_206B_200C_202B_206B_200D_206D_200E_206E_202A_202D_206C_202D_200B_202D_200C_202E((ILogger)logger, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(1448570799), new object[2] { territoryId, position });
return;
case 5:
num = 887432119;
break;
case 1:
num = ((_destinationTerritoryId != territoryId) ? 887432114 : 887432118);
break;
case 4:
num5 = 0;
goto IL_00d1;
case 3:
{
warpFailureTracker.Reset();
num = 887432116;
break;
}
IL_00d1:
_destinationTerritoryId = territoryId;
_destinationPosition = position;
_hasDestination = true;
_reRouteCount = 0;
_penalizedTargets.Clear();
num = ((num5 != 0) ? 887432116 : 887432117);
break;
}
}
}
public void ClearDestination()
{
_hasDestination = false;
_reRouteCount = 0;
_penalizedTargets.Clear();
warpFailureTracker.Reset();
}
[MethodImpl(MethodImplOptions.NoInlining)]
public ReRouteDecision HandleMovementFailure(string? failedTargetNodeId, string? failedApproachNodeId, bool hasPreservedTasks)
{
int num = ((failedTargetNodeId == null) ? 1235919696 : 1235919704);
RouteResult routeResult = default(RouteResult);
PlayerNavState playerNavState = default(PlayerNavState);
while (true)
{
int num2 = num;
int num3 = 1235919696;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 1:
routeResult = navRouter.FindRoute(playerNavState, _destinationTerritoryId, _destinationPosition, _penalizedTargets);
num = ((routeResult.Segments.Count != 0) ? 1235919700 : 1235919698);
break;
case 4:
{
int reRouteCount2 = _reRouteCount;
num3 = 1;
num4 = reRouteCount2;
int num8 = num4 ^ num3;
int num9 = num4 & num3;
_reRouteCount = num8 + (num9 + num9);
_200D_202E_200C_202A_206E_206D_206B_200F_202B_202B_200E_202E_202A_206E_202D_202A_200F_206D_206E_206E_200E_202C_200C_206A_200C_200E_206E_202A_206C_200C_206F_206D_202B_206B_206C_202C_200D_206F_202D_202E_202E((ILogger)logger, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-2130024542), new object[4]
{
_reRouteCount,
3,
routeResult.Segments.Count,
routeResult.TotalTimeCost
});
return new ReRouteDecision.Replan(instructionBuilder.Build(routeResult, _destinationTerritoryId));
}
case 10:
num = ((_reRouteCount < 3) ? 1235919702 : 1235919709);
break;
case 3:
_200D_202A_206C_202A_202E_200E_202A_202B_202D_200D_202D_206F_206D_200F_206F_200B_200F_200D_206D_202D_206E_206E_200C_206C_200F_206A_206A_200D_202D_200B_206D_200E_206E_202D_200B_206A_206E_200B_202A_202C_202E((ILogger)logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1773659142), Array.Empty<object>());
return new ReRouteDecision.GiveUp();
case 12:
{
bool num7 = playerNavState.CurrentTerritoryId != _destinationTerritoryId;
num3 = (hasPreservedTasks ? 1 : 0);
num4 = (num7 ? 1 : 0);
num = (((num4 | num3) - (num4 ^ num3) == 0) ? 1235919697 : 1235919710);
break;
}
case 7:
num = 1235919704;
break;
case 2:
_200D_202A_206C_202A_202E_200E_202A_202B_202D_200D_202D_206F_206D_200F_206F_200B_200F_200D_206D_202D_206E_206E_200C_206C_200F_206A_206A_200D_202D_200B_206D_200E_206E_202D_200B_206A_206E_200B_202A_202C_202E((ILogger)logger, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(399693509), new object[1] { _destinationTerritoryId });
return new ReRouteDecision.GiveUp();
case 13:
_200D_202A_206C_202A_202E_200E_202A_202B_202D_200D_202D_206F_206D_200F_206F_200B_200F_200D_206D_202D_206E_206E_200C_206C_200F_206A_206A_200D_202D_200B_206D_200E_206E_202D_200B_206A_206E_200B_202A_202C_202E((ILogger)logger, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1940106289), new object[2] { _reRouteCount, 3 });
return new ReRouteDecision.GiveUp();
case 8:
_penalizedTargets.Add(failedTargetNodeId);
num = ((!_200D_202D_200B_206B_206D_202C_206C_206C_206F_206E_200E_200D_202A_202B_202D_200F_200F_200F_206E_206E_200F_200B_202A_200B_206C_206B_206A_200F_200C_206C_200E_206A_202D_200E_206E_206A_202B_202A_202E_206D_202E(failedTargetNodeId, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-1541648262), StringComparison.Ordinal)) ? 1235919696 : 1235919705);
break;
case 11:
_200D_202A_206C_202A_202E_200E_202A_202B_202D_200D_202D_206F_206D_200F_206F_200B_200F_200D_206D_202D_206E_206E_200C_206C_200F_206A_206A_200D_202D_200B_206D_200E_206E_202D_200B_206A_206E_200B_202A_202C_202E((ILogger)logger, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(466466716), Array.Empty<object>());
return new ReRouteDecision.GiveUp();
case 6:
playerNavState = playerNavStateBuilder.Build();
num = ((playerNavState != null) ? 1235919708 : 1235919699);
break;
case 0:
num = (_hasDestination ? 1235919706 : 1235919707);
break;
case 5:
_penalizedTargets.Add(failedApproachNodeId);
num = 1235919696;
break;
case 14:
{
int reRouteCount = _reRouteCount;
num3 = 1;
num4 = reRouteCount;
_reRouteCount = (num4 | num3) + (num4 & num3);
_200D_202E_200C_202A_206E_206D_206B_200F_202B_202B_200E_202E_202A_206E_202D_202A_200F_206D_206E_206E_200E_202C_200C_206A_200C_200E_206E_202A_206C_200C_206F_206D_202B_206B_206C_202C_200D_206F_202D_202E_202E((ILogger)logger, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(303219870), new object[3] { _reRouteCount, playerNavState.CurrentTerritoryId, _destinationTerritoryId });
return new ReRouteDecision.SkipMovement();
}
case 9:
num = ((failedApproachNodeId == null) ? 1235919696 : 1235919701);
break;
}
}
}
static void _202D_206B_200F_202E_206E_206B_202D_202D_206F_200B_206B_206F_200E_206E_200B_202E_206B_200F_202A_206F_206B_202A_202C_202D_206A_206B_200C_202B_206B_200D_206D_200E_206E_202A_202D_206C_202D_200B_202D_200C_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogDebug(P_1, P_2);
}
static bool _200D_202D_200B_206B_206D_202C_206C_206C_206F_206E_200E_200D_202A_202B_202D_200F_200F_200F_206E_206E_200F_200B_202A_200B_206C_206B_206A_200F_200C_206C_200E_206A_202D_200E_206E_206A_202B_202A_202E_206D_202E(string P_0, string P_1, StringComparison P_2)
{
return P_0.StartsWith(P_1, P_2);
}
static void _200D_202A_206C_202A_202E_200E_202A_202B_202D_200D_202D_206F_206D_200F_206F_200B_200F_200D_206D_202D_206E_206E_200C_206C_200F_206A_206A_200D_202D_200B_206D_200E_206E_202D_200B_206A_206E_200B_202A_202C_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogWarning(P_1, P_2);
}
static void _200D_202E_200C_202A_206E_206D_206B_200F_202B_202B_200E_202E_202A_206E_202D_202A_200F_206D_206E_206E_200E_202C_200C_206A_200C_200E_206E_202A_206C_200C_206F_206D_202B_206B_206C_202C_200D_206F_202D_202E_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogInformation(P_1, P_2);
}
}

View file

@ -0,0 +1,512 @@
using System;
using System.Collections.Generic;
using System.Numerics;
using System.Runtime.CompilerServices;
using Microsoft.Extensions.Logging;
using SmartNav.Data;
using SmartNav.Graph;
using SmartNav.Model.Navigation;
namespace SmartNav;
public sealed class RouteInstructionBuilder(AetheryteData aetheryteData, ITerritoryInfo territoryInfo, ILogger<RouteInstructionBuilder> logger)
{
private const float BoundaryApproachMargin = 5f;
public IReadOnlyList<NavInstruction> Build(RouteResult route, uint destinationTerritory, bool disableNavmesh = false)
{
List<NavInstruction> list = new List<NavInstruction>();
int num = 0;
int num2 = -1441158643;
RouteSegment routeSegment = default(RouteSegment);
while (true)
{
int num3 = num2;
int num4 = -1441158642;
int num5 = num3;
int num6 = num5 + num4;
int num7 = num5 & num4;
switch (num6 - (num7 + num7))
{
case 4:
{
int num10 = num;
num4 = 1;
num5 = num10;
num = (num5 | num4) + (num5 & num4);
num2 = -1441158643;
break;
}
case 6:
{
RouteSegment seg = routeSegment;
object previous;
if (num <= 0)
{
previous = null;
}
else
{
IReadOnlyList<RouteSegment> segments = route.Segments;
int num9 = num;
num4 = 1;
num5 = num9;
previous = segments[~(~num5 + num4)];
}
BuildSegment(list, seg, (RouteSegment?)previous, num, route.Segments.Count, destinationTerritory, disableNavmesh);
num2 = -1441158646;
break;
}
case 5:
{
IReadOnlyList<RouteSegment> segments2 = route.Segments;
int num11 = num;
num4 = 1;
num5 = num11;
num2 = ((segments2[(num5 | num4) + (num5 & num4)].EdgeType == NavEdgeType.ZoneBoundary) ? (-1441158646) : (-1441158648));
break;
}
case 1:
{
int num8 = num;
num4 = 1;
num5 = num8;
num2 = (((num5 | num4) + (num5 & num4) >= route.Segments.Count) ? (-1441158648) : (-1441158645));
break;
}
case 0:
return list;
case 7:
num2 = -1441158643;
break;
case 2:
routeSegment = route.Segments[num];
num2 = ((routeSegment.EdgeType != NavEdgeType.WithinZone) ? (-1441158648) : (-1441158641));
break;
case 3:
num2 = ((num < route.Segments.Count) ? (-1441158644) : (-1441158642));
break;
}
}
}
private static bool TryComputeApproach(TriggerBox trigger, Vector3 walkTo, Vector3? origin, out Vector3 approach)
{
approach = default(Vector3);
int num = (origin.HasValue ? 1645228260 : 1645228262);
bool flag = default(bool);
Matrix4x4 matrix = default(Matrix4x4);
Vector3 vector2 = default(Vector3);
float num7 = default(float);
while (true)
{
int num2 = num;
int num3 = 1645228263;
int num4 = num2;
float num8;
Vector3 normal;
float num5;
float num6;
Vector3 vector;
switch ((num4 | num3) - (num4 & num3))
{
case 3:
flag = _202D_200F_202D_206F_206E_200B_202A_206C_206B_202B_200F_200C_206F_206E_200D_202E_206B_202B_200C_206F_200B_202D_202D_206C_202A_206C_200C_206B_202B_200C_206C_206A_202C_202B_202B_200C_206C_200E_202B_206E_202E(trigger).X <= _202D_200F_202D_206F_206E_200B_202A_206C_206B_202B_200F_200C_206F_206E_200D_202E_206B_202B_200C_206F_200B_202D_202D_206C_202A_206C_200C_206B_202B_200C_206C_206A_202C_202B_202B_200C_206C_200E_202B_206E_202E(trigger).Z;
num = (flag ? 1645228259 : 1645228257);
break;
case 4:
num8 = _202D_200F_202D_206F_206E_200B_202A_206C_206B_202B_200F_200C_206F_206E_200D_202E_206B_202B_200C_206F_200B_202D_202D_206C_202A_206C_200C_206B_202B_200C_206C_206A_202C_202B_202B_200C_206C_200E_202B_206E_202E(trigger).X;
goto IL_00c4;
case 6:
num8 = _202D_200F_202D_206F_206E_200B_202A_206C_206B_202B_200F_200C_206F_206E_200D_202E_206B_202B_200C_206F_200B_202D_202D_206C_202A_206C_200C_206B_202B_200C_206C_206A_202C_202B_202B_200C_206C_200E_202B_206E_202E(trigger).Z;
goto IL_00c4;
case 2:
matrix = Matrix4x4.CreateFromYawPitchRoll(_206D_202C_200C_202D_206B_200C_200B_206C_202C_202C_202B_206C_202B_200C_202D_206A_202B_202C_202D_200C_206E_202A_206D_206E_200B_206C_206F_200C_206D_200C_202D_206C_200D_206A_206D_206E_202C_206E_206D_202E(trigger).Y, _206D_202C_200C_202D_206B_200C_200B_206C_202C_202C_202B_206C_202B_200C_202D_206A_202B_202C_202D_200C_206E_202A_206D_206E_200B_206C_206F_200C_206D_200C_202D_206C_200D_206A_206D_206E_202C_206E_206D_202E(trigger).X, _206D_202C_200C_202D_206B_200C_200B_206C_202C_202C_202B_206C_202B_200C_202D_206A_202B_202C_202D_200C_206E_202A_206D_206E_200B_206C_206F_200C_206D_200C_202D_206C_200D_206A_206D_206E_202C_206E_206D_202E(trigger).Z);
num = (flag ? 1645228258 : 1645228263);
break;
case 12:
vector2 = Vector3.Normalize(vector2);
num = ((Vector3.Dot(origin.Value - _202E_202E_200B_202A_206D_200C_202C_206F_202E_202D_200B_202A_206C_202D_206C_200F_202A_206D_202C_202D_206E_206C_200D_202B_206E_202E_202D_200C_206F_200F_202D_200B_200C_200D_202B_206E_200E_202B_206B_206F_202E(trigger), vector2) >= 0f) ? 1645228270 : 1645228271);
break;
case 11:
return false;
case 7:
num = 1645228262;
break;
case 0:
normal = Vector3.UnitZ;
goto IL_021a;
case 8:
num5 = -1f;
goto IL_01cf;
case 9:
num5 = 1f;
goto IL_01cf;
case 10:
return false;
case 5:
normal = Vector3.UnitX;
goto IL_021a;
case 1:
{
return false;
}
IL_01cf:
num6 = num5;
vector = _202E_202E_200B_202A_206D_200C_202C_206F_202E_202D_200B_202A_206C_202D_206C_200F_202A_206D_202C_202D_206E_206C_200D_202B_206E_202E_202D_200C_206F_200F_202D_200B_200C_200D_202B_206E_200E_202B_206B_206F_202E(trigger) + vector2 * num6 * (num7 + 5f);
approach = new Vector3(vector.X, walkTo.Y, vector.Z);
return true;
IL_021a:
vector2 = Vector3.TransformNormal(normal, matrix);
vector2.Y = 0f;
num = ((!(vector2.LengthSquared() < 0.01f)) ? 1645228267 : 1645228268);
break;
IL_00c4:
num7 = num8;
num = ((!(_202D_200F_202D_206F_206E_200B_202A_206C_206B_202B_200F_200C_206F_206E_200D_202E_206B_202B_200C_206F_200B_202D_202D_206C_202A_206C_200C_206B_202B_200C_206C_206A_202C_202B_202B_200C_206C_200E_202B_206E_202E(trigger).Y < num7)) ? 1645228261 : 1645228269);
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
private void BuildSegment(List<NavInstruction> instructions, RouteSegment seg, RouteSegment? previous, int index, int segmentCount, uint destinationTerritory, bool disableNavmesh)
{
switch (seg.EdgeType)
{
case NavEdgeType.TicketTeleport:
goto IL_01d4;
case NavEdgeType.WithinZone:
goto IL_027e;
case NavEdgeType.Warp:
goto IL_044c;
case NavEdgeType.ChocoboTaxi:
goto IL_06b0;
case NavEdgeType.Teleport:
case NavEdgeType.Return:
goto IL_078c;
case NavEdgeType.ZoneBoundary:
goto IL_07b7;
case NavEdgeType.SubRegionTransport:
goto IL_08c6;
case NavEdgeType.AethernetHop:
goto IL_0afd;
}
int num = 807288899;
goto IL_003d;
IL_044c:
uint territoryId = seg.From.TerritoryId;
uint territoryId2 = seg.To.TerritoryId;
_206F_206D_206C_202A_200C_206F_202C_206D_200B_206D_202E_200E_206C_206F_202B_200E_202B_200B_200B_202B_206F_206F_202C_206E_202A_206A_200B_206B_202E_202E_202D_206D_202D_200B_200F_206A_202D_202E_206E_202E((ILogger)logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(699118114), new object[2]
{
territoryInfo.GetNameAndId(territoryId),
territoryInfo.GetNameAndId(territoryId2)
});
NavNode.WarpNode warpNode = seg.From as NavNode.WarpNode;
num = (((object)warpNode == null) ? 807288921 : 807288909);
goto IL_003d;
IL_003d:
uint territoryId6 = default(uint);
ushort value = default(ushort);
uint territoryId5 = default(uint);
Vector3 approach = default(Vector3);
uint? num8 = default(uint?);
uint territoryId4 = default(uint);
bool flag = default(bool);
NavNode.WarpNode warpNode2 = default(NavNode.WarpNode);
NavNode.TicketNode ticketNode = default(NavNode.TicketNode);
uint territoryId3 = default(uint);
NavNode.SubRegionConnectorNode subRegionConnectorNode = default(NavNode.SubRegionConnectorNode);
TriggerBox trigger = default(TriggerBox);
NavNode.ZoneBoundaryNode zoneBoundaryNode = default(NavNode.ZoneBoundaryNode);
int num3;
int num4;
while (true)
{
int num2 = num;
num3 = 807288896;
num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
int num9;
int num7;
ushort expectedTerritory;
switch (num5 - (num6 + num6))
{
case 25:
_200E_200E_200B_206E_206C_200C_200B_200E_206E_206D_200D_200D_200C_206F_202B_202C_206A_206A_202E_206F_202B_200D_200F_206B_200D_200D_206B_206B_202E_206F_202E_206A_200F_202B_202E_200F_206B_206E_202B_200C_202E((ILogger)logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1406522576), new object[2]
{
territoryInfo.GetNameAndId(territoryId),
territoryInfo.GetNameAndId(territoryId2)
});
return;
case 15:
_200E_200E_200B_206E_206C_200C_200B_200E_206E_206D_200D_200D_200C_206F_202B_202C_206A_206A_202E_206F_202B_200D_200F_206B_200D_200D_206B_206B_202E_206F_202E_206A_200F_202B_202E_200F_206B_206E_202B_200C_202E((ILogger)logger, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-399339980), Array.Empty<object>());
return;
case 32:
num = 807288899;
break;
case 30:
_206F_206D_206C_202A_200C_206F_202C_206D_200B_206D_202E_200E_206C_206F_202B_200E_202B_200B_200B_202B_206F_206F_202C_206E_202A_206A_200B_206B_202E_202E_202D_206D_202D_200B_200F_206A_202D_202E_206E_202E((ILogger)logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1015089511), new object[2]
{
seg.AethernetFrom.Value,
seg.AethernetTo.Value
});
instructions.Add(new NavInstruction.WaitForNavmesh());
instructions.Add(new NavInstruction.AethernetHop(seg.AethernetFrom.Value, seg.AethernetTo.Value));
return;
case 0:
goto end_IL_003d;
case 6:
goto IL_0200;
case 34:
num9 = ((seg.To.TerritoryId == destinationTerritory) ? 1 : 0);
goto IL_0562;
case 16:
instructions.Add(new NavInstruction.WaitForTerritory(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(territoryId6), _200D_200B_202E_206A_202B_200E_202E_206D_206E_200C_200E_202B_206B_200F_206A_200D_206E_206D_206D_200D_206B_200C_206A_200D_202C_202C_206B_202D_206A_202B_202B_206A_200C_206A_202B_206B_206E_206B_206F_200F_202E(global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-2121195380), territoryInfo.GetNameAndId(territoryId6), global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-2010692120))));
return;
case 21:
goto IL_027e;
case 19:
goto IL_02b8;
case 20:
num7 = value;
goto IL_02e1;
case 7:
goto IL_032e;
case 17:
{
instructions.Add(new NavInstruction.Move((ushort)territoryId5, approach, Fly: true, LandAtTarget: true, 3f, null, null, DisableNavmesh: false, AllowZoneTransition: true, seg.From.Id, null, IsFinal: false));
ushort territory2 = (ushort)territoryId5;
Vector3 position2 = seg.From.Position;
float? stopDistance2 = 0f;
num8 = null;
instructions.Add(new NavInstruction.Move(territory2, position2, Fly: false, LandAtTarget: false, stopDistance2, num8, null, DisableNavmesh: false, AllowZoneTransition: true, seg.From.Id, null, IsFinal: false));
num = 807288912;
break;
}
case 31:
return;
case 2:
{
ushort territory = (ushort)territoryId5;
Vector3 position = seg.From.Position;
bool fly = seg.Fly;
bool fly2 = seg.Fly;
float? stopDistance = 0f;
num8 = null;
instructions.Add(new NavInstruction.Move(territory, position, fly, fly2, stopDistance, num8, null, DisableNavmesh: false, AllowZoneTransition: true, seg.From.Id, null, IsFinal: false));
num = 807288912;
break;
}
case 12:
goto IL_044c;
case 24:
{
uint valueOrDefault = num8.GetValueOrDefault();
instructions.Add(new NavInstruction.InteractWarp(valueOrDefault, warpNode.WarpRowId, (ushort)territoryId, (ushort)territoryId2));
return;
}
case 1:
{
uint? dataId = num8;
instructions.Add(new NavInstruction.Move((ushort)territoryId4, seg.To.Position, seg.Fly, seg.Fly, flag ? ((float?)null) : new float?(3f), dataId, null, DisableNavmesh: false, AllowZoneTransition: false, seg.To.Id, seg.From.Id, flag));
return;
}
case 5:
num9 = 0;
goto IL_0562;
case 37:
goto IL_0609;
case 28:
instructions.Add(new NavInstruction.WaitForNavmesh());
num = 807288933;
break;
case 29:
num8 = warpNode2.NpcDataId;
num = 807288897;
break;
case 23:
goto IL_0661;
case 18:
goto IL_0685;
case 10:
goto IL_06b0;
case 14:
_206F_206D_206C_202A_200C_206F_202C_206D_200B_206D_202E_200E_206C_206F_202B_200E_202B_200B_200B_202B_206F_206F_202C_206E_202A_206A_200B_206B_202E_202E_202D_206D_202D_200B_200F_206A_202D_202E_206E_202E((ILogger)logger, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(630015669), new object[2]
{
ticketNode.ItemId,
territoryInfo.GetNameAndId(ticketNode.TerritoryId)
});
instructions.Add(new NavInstruction.Unmount());
instructions.Add(new NavInstruction.UseTeleportTicket(ticketNode.ItemId, (ushort)ticketNode.TerritoryId));
instructions.Add(new NavInstruction.WaitForTerritory(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(ticketNode.TerritoryId), _200D_200B_202E_206A_202B_200E_202E_206D_206E_200C_200E_202B_206B_200F_206A_200D_206E_206D_206D_200D_206B_200C_206A_200D_202C_202C_206B_202D_206A_202B_202B_206A_200C_206A_202B_206B_206E_206B_206F_200F_202E(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-2762116), territoryInfo.GetNameAndId(ticketNode.TerritoryId), global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-2010692120))));
return;
case 8:
goto IL_078c;
case 11:
goto IL_07b7;
case 22:
goto IL_08c6;
case 36:
instructions.Add(new NavInstruction.Move((ushort)territoryId3, seg.To.Position, Fly: false, LandAtTarget: false, 3f, null, false, DisableNavmesh: true, AllowZoneTransition: false, seg.To.Id, seg.From.Id, IsFinal: false));
return;
case 9:
goto IL_0a00;
case 27:
goto IL_0a3d;
case 35:
num8 = null;
num = 807288897;
break;
case 13:
goto IL_0aab;
case 33:
instructions.Add(new NavInstruction.SubRegionTransport(seg.From.Position, seg.To.Position, (ushort)territoryId3));
return;
case 4:
goto IL_0afd;
case 26:
num7 = (ushort)seg.To.TerritoryId;
goto IL_02e1;
case 3:
{
num = 807288906;
break;
}
IL_02e1:
expectedTerritory = (ushort)num7;
_206F_206D_206C_202A_200C_206F_202C_206D_200B_206D_202E_200E_206C_206F_202B_200E_202B_200B_200B_202B_206F_206F_202C_206E_202A_206A_200B_206B_202E_202E_202D_206D_202D_200B_200F_206A_202D_202E_206E_202E((ILogger)logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1751938459), new object[1] { seg.TeleportTarget.Value });
instructions.Add(new NavInstruction.Teleport(seg.TeleportTarget.Value, expectedTerritory));
return;
IL_0562:
flag = (byte)num9 != 0;
_206F_206D_206C_202A_200C_206F_202C_206D_200B_206D_202E_200E_206C_206F_202B_200E_202B_200B_200B_202B_206F_206F_202C_206E_202A_206A_200B_206B_202E_202E_202D_206D_202D_200B_200F_206A_202D_202E_206E_202E((ILogger)logger, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(363490105), new object[2]
{
territoryInfo.GetNameAndId(territoryId4),
flag ? global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(988567605) : global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-1568919776)
});
instructions.Add(new NavInstruction.WaitForTerritory(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(territoryId4), _200D_200B_202E_206A_202B_200E_202E_206D_206E_200C_200E_202B_206B_200F_206A_200D_206E_206D_206D_200D_206B_200C_206A_200D_202C_202C_206B_202D_206A_202B_202B_206A_200C_206A_202B_206B_206E_206B_206F_200F_202E(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-2762116), territoryInfo.GetNameAndId(territoryId4), global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-2010692120))));
num = (disableNavmesh ? 807288933 : 807288924);
break;
}
continue;
IL_0aab:
num8 = warpNode.NpcDataId;
num = ((!num8.HasValue) ? 807288921 : 807288920);
continue;
IL_0a00:
num = (aetheryteData.TerritoryIds.TryGetValue(seg.TeleportTarget.Value, out value) ? 807288916 : 807288922);
continue;
IL_0200:
num = ((subRegionConnectorNode.Kind != SubRegionConnectorKind.Move) ? 807288929 : 807288932);
continue;
IL_0a3d:
num = ((!TryComputeApproach(trigger, seg.From.Position, previous?.From.Position, out approach)) ? 807288898 : 807288913);
continue;
IL_0685:
num = ((!seg.AethernetTo.HasValue) ? 807288927 : 807288926);
continue;
IL_0609:
warpNode2 = seg.To as NavNode.WarpNode;
num = (((object)warpNode2 == null) ? 807288931 : 807288925);
continue;
IL_032e:
zoneBoundaryNode = seg.From as NavNode.ZoneBoundaryNode;
num = (((object)zoneBoundaryNode == null) ? 807288898 : 807288919);
continue;
IL_02b8:
trigger = zoneBoundaryNode.Trigger;
num = (((object)trigger == null) ? 807288898 : 807288923);
continue;
IL_0661:
num = (zoneBoundaryNode.RequiresFlying ? 807288898 : 807288915);
continue;
end_IL_003d:
break;
}
goto IL_01d4;
IL_01d4:
ticketNode = seg.To as NavNode.TicketNode;
num = (((object)ticketNode != null) ? 807288910 : 807288911);
goto IL_003d;
IL_0afd:
num = ((!seg.AethernetFrom.HasValue) ? 807288927 : 807288914);
goto IL_003d;
IL_027e:
territoryId4 = seg.From.TerritoryId;
num3 = 1;
num4 = segmentCount;
num = ((index != ~(~num4 + num3)) ? 807288901 : 807288930);
goto IL_003d;
IL_06b0:
_200E_200E_200B_206E_206C_200C_200B_200E_206E_206D_200D_200D_200C_206F_202B_202C_206A_206A_202E_206F_202B_200D_200F_206B_200D_200D_206B_206B_202E_206F_202E_206A_200F_202B_202E_200F_206B_206E_202B_200C_202E((ILogger)logger, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(968645964), new object[1] { seg.EdgeType });
num = 807288927;
goto IL_003d;
IL_07b7:
territoryId5 = seg.From.TerritoryId;
territoryId6 = seg.To.TerritoryId;
_206F_206D_206C_202A_200C_206F_202C_206D_200B_206D_202E_200E_206C_206F_202B_200E_202B_200B_200B_202B_206F_206F_202C_206E_202A_206A_200B_206B_202E_202E_202D_206D_202D_200B_200F_206A_202D_202E_206E_202E((ILogger)logger, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-940746981), new object[2]
{
territoryInfo.GetNameAndId(territoryId5),
territoryInfo.GetNameAndId(territoryId6)
});
global::_003C_003Ez__ReadOnlyArray<uint> acceptable = new global::_003C_003Ez__ReadOnlyArray<uint>(new uint[2] { territoryId5, territoryId6 });
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(21, 2);
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-2121195380));
defaultInterpolatedStringHandler.AppendFormatted(territoryInfo.GetNameAndId(territoryId5));
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1654880308));
defaultInterpolatedStringHandler.AppendFormatted(territoryInfo.GetNameAndId(territoryId6));
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-2010692120));
instructions.Add(new NavInstruction.WaitForTerritory(acceptable, defaultInterpolatedStringHandler.ToStringAndClear()));
instructions.Add(new NavInstruction.WaitForNavmesh());
num = ((!seg.Fly) ? 807288898 : 807288903);
goto IL_003d;
IL_078c:
num = ((!seg.TeleportTarget.HasValue) ? 807288927 : 807288905);
goto IL_003d;
IL_08c6:
territoryId3 = seg.From.TerritoryId;
_206F_206D_206C_202A_200C_206F_202C_206D_200B_206D_202E_200E_206C_206F_202B_200E_202B_200B_200B_202B_206F_206F_202C_206E_202A_206A_200B_206B_202E_202E_202D_206D_202D_200B_200F_206A_202D_202E_206E_202E((ILogger)logger, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(713062435), new object[1] { territoryInfo.GetNameAndId(territoryId3) });
instructions.Add(new NavInstruction.WaitForTerritory(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(territoryId3), _200D_200B_202E_206A_202B_200E_202E_206D_206E_200C_200E_202B_206B_200F_206A_200D_206E_206D_206D_200D_206B_200C_206A_200D_202C_202C_206B_202D_206A_202B_202B_206A_200C_206A_202B_206B_206E_206B_206F_200F_202E(global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(71095156), territoryInfo.GetNameAndId(territoryId3), global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(998949340))));
instructions.Add(new NavInstruction.WaitForNavmesh());
ushort territory3 = (ushort)territoryId3;
Vector3 position3 = seg.From.Position;
float? stopDistance3 = 0f;
num8 = null;
instructions.Add(new NavInstruction.Move(territory3, position3, Fly: false, LandAtTarget: false, stopDistance3, num8, false, DisableNavmesh: false, AllowZoneTransition: false, seg.From.Id, null, IsFinal: false));
subRegionConnectorNode = seg.From as NavNode.SubRegionConnectorNode;
num = (((object)subRegionConnectorNode == null) ? 807288929 : 807288902);
goto IL_003d;
}
static Vector3 _202D_200F_202D_206F_206E_200B_202A_206C_206B_202B_200F_200C_206F_206E_200D_202E_206B_202B_200C_206F_200B_202D_202D_206C_202A_206C_200C_206B_202B_200C_206C_206A_202C_202B_202B_200C_206C_200E_202B_206E_202E(TriggerBox P_0)
{
return P_0.HalfExtents;
}
static Vector3 _206D_202C_200C_202D_206B_200C_200B_206C_202C_202C_202B_206C_202B_200C_202D_206A_202B_202C_202D_200C_206E_202A_206D_206E_200B_206C_206F_200C_206D_200C_202D_206C_200D_206A_206D_206E_202C_206E_206D_202E(TriggerBox P_0)
{
return P_0.RotationRadians;
}
static Vector3 _202E_202E_200B_202A_206D_200C_202C_206F_202E_202D_200B_202A_206C_202D_206C_200F_202A_206D_202C_202D_206E_206C_200D_202B_206E_202E_202D_200C_206F_200F_202D_200B_200C_200D_202B_206E_200E_202B_206B_206F_202E(TriggerBox P_0)
{
return P_0.Translation;
}
static void _206F_206D_206C_202A_200C_206F_202C_206D_200B_206D_202E_200E_206C_206F_202B_200E_202B_200B_200B_202B_206F_206F_202C_206E_202A_206A_200B_206B_202E_202E_202D_206D_202D_200B_200F_206A_202D_202E_206E_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogTrace(P_1, P_2);
}
static string _200D_200B_202E_206A_202B_200E_202E_206D_206E_200C_200E_202B_206B_200F_206A_200D_206E_206D_206D_200D_206B_200C_206A_200D_202C_202C_206B_202D_206A_202B_202B_206A_200C_206A_202B_206B_206E_206B_206F_200F_202E(string P_0, string P_1, string P_2)
{
return P_0 + P_1 + P_2;
}
static void _200E_200E_200B_206E_206C_200C_200B_200E_206E_206D_200D_200D_200C_206F_202B_202C_206A_206A_202E_206F_202B_200D_200F_206B_200D_200D_206B_206B_202E_206F_202E_206A_200F_202B_202E_200F_206B_206E_202B_200C_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogWarning(P_1, P_2);
}
}

View file

@ -0,0 +1,156 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Text;
namespace SmartNav;
public sealed record RouteResult(IReadOnlyList<RouteSegment> Segments, float TotalTimeCost, int TotalGilCost)
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _202A_202E_200E_206E_206D_200C_200B_206A_200D_206B_200F_200C_200C_202B_202E_202D_200B_200E_202A_206F_200F_202D_202A_202C_202A_200C_206C_206A_200C_206C_206B_200D_200E_202E_202A_206F_200C_202D_200B_202C_202E(typeof(RouteResult).TypeHandle);
}
}
public static readonly RouteResult Empty = new RouteResult(Array.Empty<RouteSegment>(), 0f, 0);
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _202A_206D_202D_200B_202E_202E_202D_206C_200C_200E_206D_200E_206D_202C_200B_202B_206A_202C_206F_206A_206E_206C_202D_200D_200C_200F_206D_200C_202C_202B_202A_200B_206A_202E_206E_202C_200D_206B_200C_206E_202E();
_202A_206B_202A_200E_206D_202B_202E_202D_206F_200D_206F_202A_206E_202D_202E_200D_206F_206F_202E_200F_200E_202B_200F_206C_202C_200C_202E_202E_202B_206D_206E_200E_206E_202E_202B_202D_200E_202D_200D_206D_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-577380167));
_202A_206B_202A_200E_206D_202B_202E_202D_206F_200D_206F_202A_206E_202D_202E_200D_206F_206F_202E_200F_200E_202B_200F_206C_202C_200C_202E_202E_202B_206D_206E_200E_206E_202E_202B_202D_200E_202D_200D_206D_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1547267250));
int num = ((!PrintMembers(stringBuilder)) ? (-6444735) : (-6444734));
while (true)
{
int num2 = num;
int num3 = -6444733;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
num = -6444734;
break;
case 2:
_202D_202C_200F_200E_206C_200D_206B_202A_200C_200B_206E_202A_200B_200D_202A_206C_200C_200C_202C_206C_202D_202B_206D_206A_202E_200C_200D_200F_200B_202A_206A_206D_202B_206F_200B_200F_202B_206F_206F_206A_202E(stringBuilder, '}');
return _206C_200C_200C_202B_200C_200B_200B_200C_206B_200D_206A_206B_206A_206B_202D_206C_200C_206B_202E_200C_200E_206D_206B_202D_200F_202D_200F_202E_206C_206D_202E_206D_206E_206C_202D_206A_200D_200D_202E_202D_202E((object)stringBuilder);
case 1:
_202D_202C_200F_200E_206C_200D_206B_202A_200C_200B_206E_202A_200B_200D_202A_206C_200C_200C_202C_206C_202D_202B_206D_206A_202E_200C_200D_200F_200B_202A_206A_206D_202B_206F_200B_200F_202B_206F_206F_206A_202E(stringBuilder, ' ');
num = -6444735;
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_202E_206B_202C_206E_202E_206C_206A_200F_200C_206A_200D_206D_202C_202C_202A_206B_200C_206A_206E_200C_200D_200C_202E_200E_200E_206E_202E_200F_206B_202A_206E_206D_206E_202A_202A_206C_202E_206D_200B_202B_202E();
_202A_206B_202A_200E_206D_202B_202E_202D_206F_200D_206F_202A_206E_202D_202E_200D_206F_206F_202E_200F_200E_202B_200F_206C_202C_200C_202E_202E_202B_206D_206E_200E_206E_202E_202B_202D_200E_202D_200D_206D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1058882453));
_200E_200E_206D_206A_206A_200B_206C_200B_200B_200B_206B_200C_206B_202C_200D_202A_206A_200C_200C_202B_202E_200B_202D_202A_206C_200C_202E_206C_202D_206A_202C_200C_206D_200C_200E_206B_200C_202D_206B_206D_202E(builder, (object)Segments);
_202A_206B_202A_200E_206D_202B_202E_202D_206F_200D_206F_202A_206E_202D_202E_200D_206F_206F_202E_200F_200E_202B_200F_206C_202C_200C_202E_202E_202B_206D_206E_200E_206E_202E_202B_202D_200E_202D_200D_206D_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-36131857));
_202A_206B_202A_200E_206D_202B_202E_202D_206F_200D_206F_202A_206E_202D_202E_200D_206F_206F_202E_200F_200E_202B_200F_206C_202C_200C_202E_202E_202B_206D_206E_200E_206E_202E_202B_202D_200E_202D_200D_206D_202E(builder, TotalTimeCost.ToString());
_202A_206B_202A_200E_206D_202B_202E_202D_206F_200D_206F_202A_206E_202D_202E_200D_206F_206F_202E_200F_200E_202B_200F_206C_202C_200C_202E_202E_202B_206D_206E_200E_206E_202E_202B_202D_200E_202D_200D_206D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-169019911));
_202A_206B_202A_200E_206D_202B_202E_202D_206F_200D_206F_202A_206E_202D_202E_200D_206F_206F_202E_200F_200E_202B_200F_206C_202C_200C_202E_202E_202B_206D_206E_200E_206E_202E_202B_202D_200E_202D_200D_206D_202E(builder, TotalGilCost.ToString());
return true;
}
[CompilerGenerated]
public bool Equals(RouteResult? other)
{
int num = (((object)this == other) ? (-1895963469) : (-1895963465));
while (true)
{
int num2 = num;
int num3 = -1895963466;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
num = -1895963465;
break;
case 6:
return EqualityComparer<int>.Default.Equals(TotalGilCost, other.TotalGilCost);
case 4:
num = ((!_206F_200F_202B_206C_200B_202A_200E_202A_206F_200D_202B_202D_202B_200C_202B_202C_206C_206A_202C_206C_206D_200B_206F_200E_202D_202C_202D_200E_202A_202A_206E_206F_202E_200B_206B_206C_206D_206B_202E_200F_202E(EqualityContract, other.EqualityContract)) ? (-1895963467) : (-1895963466));
break;
case 5:
return true;
case 7:
num = ((!EqualityComparer<float>.Default.Equals(TotalTimeCost, other.TotalTimeCost)) ? (-1895963467) : (-1895963472));
break;
case 0:
num = ((!EqualityComparer<IReadOnlyList<RouteSegment>>.Default.Equals(Segments, other.Segments)) ? (-1895963467) : (-1895963471));
break;
case 3:
return false;
case 1:
num = (((object)other == null) ? (-1895963467) : (-1895963470));
break;
}
}
}
bool IEquatable<RouteResult>.Equals(RouteResult? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
[CompilerGenerated]
private RouteResult(RouteResult original)
{
Segments = original.Segments;
TotalTimeCost = original.TotalTimeCost;
TotalGilCost = original.TotalGilCost;
}
static Type _202A_202E_200E_206E_206D_200C_200B_206A_200D_206B_200F_200C_200C_202B_202E_202D_200B_200E_202A_206F_200F_202D_202A_202C_202A_200C_206C_206A_200C_206C_206B_200D_200E_202E_202A_206F_200C_202D_200B_202C_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder _202A_206D_202D_200B_202E_202E_202D_206C_200C_200E_206D_200E_206D_202C_200B_202B_206A_202C_206F_206A_206E_206C_202D_200D_200C_200F_206D_200C_202C_202B_202A_200B_206A_202E_206E_202C_200D_206B_200C_206E_202E()
{
return new StringBuilder();
}
static StringBuilder _202A_206B_202A_200E_206D_202B_202E_202D_206F_200D_206F_202A_206E_202D_202E_200D_206F_206F_202E_200F_200E_202B_200F_206C_202C_200C_202E_202E_202B_206D_206E_200E_206E_202E_202B_202D_200E_202D_200D_206D_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _202D_202C_200F_200E_206C_200D_206B_202A_200C_200B_206E_202A_200B_200D_202A_206C_200C_200C_202C_206C_202D_202B_206D_206A_202E_200C_200D_200F_200B_202A_206A_206D_202B_206F_200B_200F_202B_206F_206F_206A_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _206C_200C_200C_202B_200C_200B_200B_200C_206B_200D_206A_206B_206A_206B_202D_206C_200C_206B_202E_200C_200E_206D_206B_202D_200F_202D_200F_202E_206C_206D_202E_206D_206E_206C_202D_206A_200D_200D_202E_202D_202E(object P_0)
{
return P_0.ToString();
}
static void _202E_206B_202C_206E_202E_206C_206A_200F_200C_206A_200D_206D_202C_202C_202A_206B_200C_206A_206E_200C_200D_200C_202E_200E_200E_206E_202E_200F_206B_202A_206E_206D_206E_202A_202A_206C_202E_206D_200B_202B_202E()
{
RuntimeHelpers.EnsureSufficientExecutionStack();
}
static StringBuilder _200E_200E_206D_206A_206A_200B_206C_200B_200B_200B_206B_200C_206B_202C_200D_202A_206A_200C_200C_202B_202E_200B_202D_202A_206C_200C_202E_206C_202D_206A_202C_200C_206D_200C_200E_206B_200C_202D_206B_206D_202E(StringBuilder P_0, object P_1)
{
return P_0.Append(P_1);
}
static bool _206F_200F_202B_206C_200B_202A_200E_202A_206F_200D_202B_202D_202B_200C_202B_202C_206C_206A_202C_206C_206D_200B_206F_200E_202D_202C_202D_200E_202A_202A_206E_206F_202E_200B_206B_206C_206D_206B_202E_200F_202E(Type P_0, Type P_1)
{
return P_0 == P_1;
}
}

View file

@ -0,0 +1,176 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Text;
using SmartNav.Graph;
using SmartNav.Model;
namespace SmartNav;
public sealed record RouteSegment(NavEdgeType EdgeType, NavNode From, NavNode To, float TimeCost, int GilCost, EAetheryteLocation? TeleportTarget = null, EAetheryteLocation? AethernetFrom = null, EAetheryteLocation? AethernetTo = null, bool Fly = false)
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _206E_202B_206E_200F_200F_206A_202D_202C_200D_200C_200D_206E_206E_206D_206C_206A_206B_202D_202A_200B_200C_206F_200D_202E_206C_202A_200F_206A_202D_206A_200D_202D_200C_206B_206B_200C_202C_206B_206E_202A_202E(typeof(RouteSegment).TypeHandle);
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _206A_200B_206F_202E_202E_200B_200C_202A_202D_202C_202E_202C_202E_200E_200B_202B_200C_202D_202D_206E_206A_200B_206F_206B_200C_206C_200B_202C_200D_202C_206E_202E_202E_206B_206A_200E_206D_202D_202D_200E_202E();
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(604182264));
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1886515922));
int num = ((!PrintMembers(stringBuilder)) ? 113490331 : 113490328);
while (true)
{
int num2 = num;
int num3 = 113490330;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = 113490328;
break;
case 2:
_200E_202D_206B_206F_206F_206F_200C_202E_202D_200F_206B_202B_200D_206E_202C_202B_206F_206F_206F_200B_200D_200D_200F_202D_206F_200C_202A_200F_200B_206B_202A_202A_202C_200F_202A_200D_206A_202D_200D_202D_202E(stringBuilder, ' ');
num = 113490331;
break;
case 1:
_200E_202D_206B_206F_206F_206F_200C_202E_202D_200F_206B_202B_200D_206E_202C_202B_206F_206F_206F_200B_200D_200D_200F_202D_206F_200C_202A_200F_200B_206B_202A_202A_202C_200F_202A_200D_206A_202D_200D_202D_202E(stringBuilder, '}');
return _202C_206B_202C_202D_202A_206E_206C_202D_200D_206D_206F_202C_206C_206A_206D_200B_200F_202E_202B_202D_200D_200C_202C_202C_202E_206A_200D_206A_202B_202B_202C_202A_206A_206E_202E_200D_202D_200B_200F_202A_202E((object)stringBuilder);
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_200E_206C_206D_200D_206C_200B_202C_202C_206A_200B_200D_206B_206D_206D_202C_206B_206F_200D_200F_206D_206D_202A_200F_202B_200C_202B_202C_206B_206B_200B_202B_202C_202B_202A_200D_200F_200F_200E_202D_206E_202E();
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-1357100031));
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, EdgeType.ToString());
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-813710077));
_206D_202D_202D_206E_200B_200F_200C_200D_202A_200B_200C_206A_200F_202C_200E_206E_200F_200C_202E_200E_206D_202E_200B_206B_206B_200D_206D_202D_200C_206D_206B_206E_200C_202A_206E_206F_206F_200D_202E_200C_202E(builder, (object)From);
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-865901425));
_206D_202D_202D_206E_200B_200F_200C_200D_202A_200B_200C_206A_200F_202C_200E_206E_200F_200C_202E_200E_206D_202E_200B_206B_206B_200D_206D_202D_200C_206D_206B_206E_200C_202A_206E_206F_206F_200D_202E_200C_202E(builder, (object)To);
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(1456359759));
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, TimeCost.ToString());
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(777403998));
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, GilCost.ToString());
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(1828871146));
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, TeleportTarget.ToString());
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(448663852));
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, AethernetFrom.ToString());
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-874714194));
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, AethernetTo.ToString());
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1888043309));
_202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, Fly.ToString());
return true;
}
[CompilerGenerated]
public bool Equals(RouteSegment? other)
{
int num = (((object)this == other) ? 128949533 : 128949523);
while (true)
{
int num2 = num;
int num3 = 128949535;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 5:
num = 128949523;
break;
case 2:
return true;
case 10:
num = ((!EqualityComparer<float>.Default.Equals(TimeCost, other.TimeCost)) ? 128949534 : 128949527);
break;
case 8:
num = ((!EqualityComparer<int>.Default.Equals(GilCost, other.GilCost)) ? 128949534 : 128949535);
break;
case 12:
num = (((object)other == null) ? 128949534 : 128949526);
break;
case 4:
num = ((!EqualityComparer<EAetheryteLocation?>.Default.Equals(AethernetFrom, other.AethernetFrom)) ? 128949534 : 128949522);
break;
case 3:
num = ((!EqualityComparer<NavEdgeType>.Default.Equals(EdgeType, other.EdgeType)) ? 128949534 : 128949528);
break;
case 1:
return false;
case 0:
num = ((!EqualityComparer<EAetheryteLocation?>.Default.Equals(TeleportTarget, other.TeleportTarget)) ? 128949534 : 128949531);
break;
case 6:
num = ((!EqualityComparer<NavNode>.Default.Equals(To, other.To)) ? 128949534 : 128949525);
break;
case 7:
num = ((!EqualityComparer<NavNode>.Default.Equals(From, other.From)) ? 128949534 : 128949529);
break;
case 11:
return EqualityComparer<bool>.Default.Equals(Fly, other.Fly);
case 13:
num = ((!EqualityComparer<EAetheryteLocation?>.Default.Equals(AethernetTo, other.AethernetTo)) ? 128949534 : 128949524);
break;
case 9:
num = ((!_206C_200B_200C_206F_206A_202A_202E_200B_202C_200B_200B_206D_202E_206E_206A_202E_206C_200B_200B_200C_202E_202B_206B_206F_206B_206B_200F_206C_206C_206F_206A_206A_206A_200E_206C_200C_200E_200C_202E_202E_202E(EqualityContract, other.EqualityContract)) ? 128949534 : 128949532);
break;
}
}
}
bool IEquatable<RouteSegment>.Equals(RouteSegment? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type _206E_202B_206E_200F_200F_206A_202D_202C_200D_200C_200D_206E_206E_206D_206C_206A_206B_202D_202A_200B_200C_206F_200D_202E_206C_202A_200F_206A_202D_206A_200D_202D_200C_206B_206B_200C_202C_206B_206E_202A_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder _206A_200B_206F_202E_202E_200B_200C_202A_202D_202C_202E_202C_202E_200E_200B_202B_200C_202D_202D_206E_206A_200B_206F_206B_200C_206C_200B_202C_200D_202C_206E_202E_202E_206B_206A_200E_206D_202D_202D_200E_202E()
{
return new StringBuilder();
}
static StringBuilder _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _200E_202D_206B_206F_206F_206F_200C_202E_202D_200F_206B_202B_200D_206E_202C_202B_206F_206F_206F_200B_200D_200D_200F_202D_206F_200C_202A_200F_200B_206B_202A_202A_202C_200F_202A_200D_206A_202D_200D_202D_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _202C_206B_202C_202D_202A_206E_206C_202D_200D_206D_206F_202C_206C_206A_206D_200B_200F_202E_202B_202D_200D_200C_202C_202C_202E_206A_200D_206A_202B_202B_202C_202A_206A_206E_202E_200D_202D_200B_200F_202A_202E(object P_0)
{
return P_0.ToString();
}
static void _200E_206C_206D_200D_206C_200B_202C_202C_206A_200B_200D_206B_206D_206D_202C_206B_206F_200D_200F_206D_206D_202A_200F_202B_200C_202B_202C_206B_206B_200B_202B_202C_202B_202A_200D_200F_200F_200E_202D_206E_202E()
{
RuntimeHelpers.EnsureSufficientExecutionStack();
}
static StringBuilder _206D_202D_202D_206E_200B_200F_200C_200D_202A_200B_200C_206A_200F_202C_200E_206E_200F_200C_202E_200E_206D_202E_200B_206B_206B_200D_206D_202D_200C_206D_206B_206E_200C_202A_206E_206F_206F_200D_202E_200C_202E(StringBuilder P_0, object P_1)
{
return P_0.Append(P_1);
}
static bool _206C_200B_200C_206F_206A_202A_202E_200B_202C_200B_200B_206D_202E_206E_206A_202E_206C_200B_200B_200C_202E_202B_206B_206F_206B_206B_200F_206C_206C_206F_206A_206A_206A_200E_206C_200C_200E_200C_202E_202E_202E(Type P_0, Type P_1)
{
return P_0 == P_1;
}
}

View file

@ -0,0 +1,234 @@
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Threading;
using Microsoft.Extensions.Logging;
namespace SmartNav;
public sealed class WarpFailureTracker(ILogger<WarpFailureTracker> logger)
{
private const int BlacklistThreshold = 3;
private readonly object _gate = _202B_206F_206C_202E_206C_200B_206F_206A_206D_200E_200D_200B_200C_200B_200C_206D_206F_202A_200E_206A_200F_206A_206B_200F_206F_200D_202B_206C_206F_200E_206D_206F_202E_200C_200B_206C_202D_200F_200F_200C_202E();
private readonly Dictionary<uint, int> _consecutiveFailures = new Dictionary<uint, int>();
private readonly HashSet<uint> _blacklisted = new HashSet<uint>();
[MethodImpl(MethodImplOptions.NoInlining)]
public bool RecordAttempt(uint warpRowId)
{
object gate = _gate;
bool flag = false;
try
{
_206C_200C_200F_206A_202B_200C_206B_206C_202E_202A_206F_206C_200E_200B_202C_206C_206A_200D_202C_202E_206F_202E_202C_200C_206B_206C_206A_202E_206C_206B_206A_206D_200F_200D_202E_206A_200F_200E_206D_200E_202E(gate, ref flag);
int num = ((!_blacklisted.Contains(warpRowId)) ? (-1875615629) : (-1875615627));
int num7 = default(int);
while (true)
{
int num2 = num;
int num3 = -1875615625;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
num = -1875615627;
break;
case 4:
num7 = _consecutiveFailures.GetValueOrDefault(warpRowId) + 1;
_consecutiveFailures[warpRowId] = num7;
num = ((num7 >= 3) ? (-1875615628) : (-1875615626));
break;
case 1:
return false;
case 2:
return false;
case 3:
_blacklisted.Add(warpRowId);
_202B_202C_206C_206E_206E_200F_200F_206F_202A_206D_206D_206B_206C_206C_200D_206A_202C_206F_206F_206F_200D_200B_200B_200B_206C_202E_206C_202A_202C_200F_200F_200C_206E_200E_202C_200E_200C_202C_200C_202A_202E((ILogger)logger, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1267719469), new object[2] { warpRowId, num7 });
return true;
}
}
}
finally
{
int num = ((!flag) ? (-1114779348) : (-1114779345));
while (true)
{
int num8 = num;
int num3 = -1114779347;
int num4 = num8;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = -1114779345;
break;
case 1:
goto end_IL_013c;
case 2:
_206C_200E_200B_202C_202A_200C_206E_206A_206E_206D_202B_202E_200C_202D_202E_200D_202A_202C_202E_200E_202C_206E_206D_202E_206F_202B_206B_200B_202E_202E_206C_202A_202B_206C_206F_202C_202E_206F_206E_202A_202E(gate);
num = -1114779348;
break;
}
continue;
end_IL_013c:
break;
}
}
}
public void RecordSuccess(uint warpRowId)
{
object gate = _gate;
bool flag = false;
try
{
_206C_200C_200F_206A_202B_200C_206B_206C_202E_202A_206F_206C_200E_200B_202C_206C_206A_200D_202C_202E_206F_202E_202C_200C_206B_206C_206A_202E_206C_206B_206A_206D_200F_200D_202E_206A_200F_200E_206D_200E_202E(gate, ref flag);
_consecutiveFailures.Remove(warpRowId);
_blacklisted.Remove(warpRowId);
}
finally
{
int num = ((!flag) ? 903611662 : 903611663);
while (true)
{
int num2 = num;
int num3 = 903611662;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
num = 903611663;
break;
case 1:
_206C_200E_200B_202C_202A_200C_206E_206A_206E_206D_202B_202E_200C_202D_202E_200D_202A_202C_202E_200E_202C_206E_206D_202E_206F_202B_206B_200B_202E_202E_206C_202A_202B_206C_206F_202C_202E_206F_206E_202A_202E(gate);
num = 903611662;
break;
case 0:
goto end_IL_004c;
}
continue;
end_IL_004c:
break;
}
}
}
public bool IsBlacklisted(uint warpRowId)
{
object gate = _gate;
bool flag = false;
try
{
_206C_200C_200F_206A_202B_200C_206B_206C_202E_202A_206F_206C_200E_200B_202C_206C_206A_200D_202C_202E_206F_202E_202C_200C_206B_206C_206A_202E_206C_206B_206A_206D_200F_200D_202E_206A_200F_200E_206D_200E_202E(gate, ref flag);
return _blacklisted.Contains(warpRowId);
}
finally
{
int num = ((!flag) ? (-120992941) : (-120992944));
while (true)
{
int num2 = num;
int num3 = -120992943;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = -120992944;
break;
case 1:
_206C_200E_200B_202C_202A_200C_206E_206A_206E_206D_202B_202E_200C_202D_202E_200D_202A_202C_202E_200E_202C_206E_206D_202E_206F_202B_206B_200B_202E_202E_206C_202A_202B_206C_206F_202C_202E_206F_206E_202A_202E(gate);
num = -120992941;
break;
case 2:
goto end_IL_003f;
}
continue;
end_IL_003f:
break;
}
}
}
public void Reset()
{
object gate = _gate;
bool flag = false;
try
{
_206C_200C_200F_206A_202B_200C_206B_206C_202E_202A_206F_206C_200E_200B_202C_206C_206A_200D_202C_202E_206F_202E_202C_200C_206B_206C_206A_202E_206C_206B_206A_206D_200F_200D_202E_206A_200F_200E_206D_200E_202E(gate, ref flag);
int num = ((_consecutiveFailures.Count != 0) ? 1048906019 : 1048906018);
while (true)
{
int num2 = num;
int num3 = 1048906019;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
num = 1048906018;
break;
case 1:
num = ((_blacklisted.Count != 0) ? 1048906019 : 1048906016);
break;
case 3:
return;
case 0:
_consecutiveFailures.Clear();
_blacklisted.Clear();
return;
}
}
}
finally
{
int num = ((!flag) ? 1457557147 : 1457557144);
while (true)
{
int num7 = num;
int num3 = 1457557146;
int num4 = num7;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = 1457557144;
break;
case 1:
goto end_IL_00dd;
case 2:
_206C_200E_200B_202C_202A_200C_206E_206A_206E_206D_202B_202E_200C_202D_202E_200D_202A_202C_202E_200E_202C_206E_206D_202E_206F_202B_206B_200B_202E_202E_206C_202A_202B_206C_206F_202C_202E_206F_206E_202A_202E(gate);
num = 1457557147;
break;
}
continue;
end_IL_00dd:
break;
}
}
}
static object _202B_206F_206C_202E_206C_200B_206F_206A_206D_200E_200D_200B_200C_200B_200C_206D_206F_202A_200E_206A_200F_206A_206B_200F_206F_200D_202B_206C_206F_200E_206D_206F_202E_200C_200B_206C_202D_200F_200F_200C_202E()
{
return new object();
}
static void _206C_200C_200F_206A_202B_200C_206B_206C_202E_202A_206F_206C_200E_200B_202C_206C_206A_200D_202C_202E_206F_202E_202C_200C_206B_206C_206A_202E_206C_206B_206A_206D_200F_200D_202E_206A_200F_200E_206D_200E_202E(object P_0, ref bool P_1)
{
Monitor.Enter(P_0, ref P_1);
}
static void _202B_202C_206C_206E_206E_200F_200F_206F_202A_206D_206D_206B_206C_206C_200D_206A_202C_206F_206F_206F_200D_200B_200B_200B_206C_202E_206C_202A_202C_200F_200F_200C_206E_200E_202C_200E_200C_202C_200C_202A_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogWarning(P_1, P_2);
}
static void _206C_200E_200B_202C_202A_200C_206E_206A_206E_206D_202B_202E_200C_202D_202E_200D_202A_202C_202E_200E_202C_206E_206D_202E_206F_202B_206B_200B_202E_202E_206C_202A_202B_206C_206F_202C_202E_206F_206E_202A_202E(object P_0)
{
Monitor.Exit(P_0);
}
}