forked from aly/qstbak
1147 lines
47 KiB
C#
1147 lines
47 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Numerics;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Threading;
|
|
using Dalamud.Plugin.Services;
|
|
using Lumina.Data.Files;
|
|
using Lumina.Data.Parsing.Layer;
|
|
using Lumina.Excel;
|
|
using Lumina.Excel.Sheets;
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
namespace LLib.Shop;
|
|
|
|
public sealed class NpcPositionCache
|
|
{
|
|
private static readonly string[] LgbFileNames = new string[4]
|
|
{
|
|
global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1908634427),
|
|
global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-2021484130),
|
|
global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-418261511),
|
|
global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(280692179)
|
|
};
|
|
|
|
private const uint FileMagic = 1129336401u;
|
|
|
|
private const int FileFormatVersion = 1;
|
|
|
|
private const string FileName = "npc-position-cache.bin";
|
|
|
|
private readonly IDataManager _dataManager;
|
|
|
|
private readonly ILogger<NpcPositionCache> _logger;
|
|
|
|
private readonly NpcPositionCacheOptions _options;
|
|
|
|
private readonly object _buildLock = _202C_200B_202B_202C_206D_206E_202B_202C_200B_206B_200C_206C_202A_200B_200F_202C_206B_200E_206A_206D_200F_200D_206B_206D_200B_200C_206D_200D_206F_202E_202A_206E_202B_206C_206D_200F_206C_200D_206A_206B_202E();
|
|
|
|
private volatile Dictionary<uint, (ushort TerritoryId, Vector3 Position, bool FestivalOnly)>? _cache;
|
|
|
|
public bool IsBuilt => _cache != null;
|
|
|
|
private string? CacheFilePath
|
|
{
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
get
|
|
{
|
|
int num = (_206B_202C_200C_202A_200C_202B_200D_206B_206D_206C_200C_206E_200D_202E_202C_206E_206F_200E_202B_200E_202A_206C_202E_200E_202E_202D_206A_206B_206B_200B_200B_202B_200D_202E_202E_206E_200F_202B_206A_202E(_options.CacheDirectory) ? (-1379965594) : (-1379965593));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1379965594;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 2:
|
|
return _202A_206E_206D_202D_206F_200F_206B_206D_206F_202C_206A_202B_200B_206F_206C_206B_200E_206A_206A_202B_206F_200D_200F_202C_206D_202B_200F_200E_200C_202B_206A_206F_206D_202B_206B_202B_206A_206D_206E_202A_202E(_options.CacheDirectory, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1995757655));
|
|
case 1:
|
|
num = ((!_206B_202C_200C_202A_200C_202B_200D_206B_206D_206C_200C_206E_200D_202E_202C_206E_206F_200E_202B_200E_202A_206C_202E_200E_202E_202D_206A_206B_206B_200B_200B_202B_200D_202E_202E_206E_200F_202B_206A_202E(_options.GameVersion)) ? (-1379965596) : (-1379965594));
|
|
break;
|
|
case 0:
|
|
return null;
|
|
case 3:
|
|
num = -1379965593;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public NpcPositionCache(IDataManager dataManager, ILogger<NpcPositionCache> logger, NpcPositionCacheOptions? options = null)
|
|
{
|
|
_dataManager = dataManager;
|
|
_logger = logger;
|
|
_options = options ?? new NpcPositionCacheOptions();
|
|
}
|
|
|
|
public (ushort TerritoryId, Vector3 Position)? TryGetPosition(uint npcId)
|
|
{
|
|
Dictionary<uint, (ushort, Vector3, bool)> cache = _cache;
|
|
int num = ((cache == null) ? (-89260434) : (-89260433));
|
|
(ushort, Vector3, bool) value = default((ushort, Vector3, bool));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -89260436;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 1:
|
|
return (value.Item1, value.Item2);
|
|
case 2:
|
|
return null;
|
|
case 3:
|
|
num = (cache.TryGetValue(npcId, out value) ? (-89260435) : (-89260434));
|
|
break;
|
|
case 0:
|
|
num = -89260433;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public (ushort TerritoryId, Vector3 Position, bool FestivalOnly)? TryGetPlacement(uint npcId)
|
|
{
|
|
Dictionary<uint, (ushort, Vector3, bool)> cache = _cache;
|
|
int num = ((cache == null) ? 704628277 : 704628279);
|
|
(ushort, Vector3, bool) value = default((ushort, Vector3, bool));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 704628276;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 2:
|
|
return value;
|
|
case 1:
|
|
return null;
|
|
case 3:
|
|
num = (cache.TryGetValue(npcId, out value) ? 704628278 : 704628277);
|
|
break;
|
|
case 0:
|
|
num = 704628279;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public bool TryLoadFromDisk()
|
|
{
|
|
int num = ((_cache == null) ? (-139769747) : (-139769746));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -139769748;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 0:
|
|
goto IL_0050;
|
|
case 2:
|
|
return true;
|
|
case 1:
|
|
{
|
|
object buildLock = _buildLock;
|
|
bool flag = false;
|
|
try
|
|
{
|
|
_200B_206A_200F_200D_200E_202A_200C_200E_206E_206B_206E_206A_202E_206E_206B_206F_200E_206B_206E_206D_202B_200D_202C_202A_206D_202A_202C_200C_206F_200F_206A_202D_206C_202A_200B_206A_202B_200E_206C_206D_202E(buildLock, ref flag);
|
|
num = ((_cache != null) ? (-1432120080) : (-1432120079));
|
|
while (true)
|
|
{
|
|
int num7 = num;
|
|
num3 = -1432120080;
|
|
num4 = num7;
|
|
int num8 = num4 + num3;
|
|
int num9 = num4 & num3;
|
|
switch (num8 - (num9 + num9))
|
|
{
|
|
case 2:
|
|
num = -1432120079;
|
|
break;
|
|
case 1:
|
|
_cache = LoadFromDisk();
|
|
num = -1432120080;
|
|
break;
|
|
case 0:
|
|
return _cache != null;
|
|
}
|
|
}
|
|
}
|
|
finally
|
|
{
|
|
num = ((!flag) ? 1654086869 : 1654086870);
|
|
while (true)
|
|
{
|
|
int num10 = num;
|
|
num3 = 1654086868;
|
|
num4 = num10;
|
|
int num11 = num4 + num3;
|
|
int num12 = num4 & num3;
|
|
switch (num11 - (num12 + num12))
|
|
{
|
|
case 1:
|
|
goto end_IL_010f;
|
|
case 2:
|
|
_200D_200C_206C_202E_206E_206F_206F_202E_206A_200D_206B_202A_206D_200F_202D_206D_200E_200C_200D_202B_202B_206F_202C_202E_200B_206D_202E_206E_202E_202B_202B_200D_202D_206D_202E_200C_206A_206C_200F_202E_202E(buildLock);
|
|
num = 1654086869;
|
|
break;
|
|
case 0:
|
|
num = 1654086870;
|
|
break;
|
|
}
|
|
continue;
|
|
end_IL_010f:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
continue;
|
|
IL_0050:
|
|
num = -139769746;
|
|
}
|
|
}
|
|
|
|
public void WarmUp(CancellationToken cancellationToken = default(CancellationToken))
|
|
{
|
|
EnsureBuilt(cancellationToken);
|
|
}
|
|
|
|
public (ushort TerritoryId, Vector3 Position)? GetPosition(uint npcId)
|
|
{
|
|
EnsureBuilt();
|
|
(ushort, Vector3, bool) value;
|
|
int num = (_cache.TryGetValue(npcId, out value) ? (-2002474753) : (-2002474754));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -2002474753;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 2:
|
|
goto IL_0067;
|
|
case 1:
|
|
return null;
|
|
case 0:
|
|
return (value.Item1, value.Item2);
|
|
}
|
|
continue;
|
|
IL_0067:
|
|
num = -2002474754;
|
|
}
|
|
}
|
|
|
|
public (ushort TerritoryId, Vector3 Position, bool FestivalOnly)? GetPlacement(uint npcId)
|
|
{
|
|
EnsureBuilt();
|
|
(ushort, Vector3, bool) value;
|
|
int num = (_cache.TryGetValue(npcId, out value) ? 1062147025 : 1062147024);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1062147025;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 2:
|
|
goto IL_0067;
|
|
case 0:
|
|
return value;
|
|
case 1:
|
|
return null;
|
|
}
|
|
continue;
|
|
IL_0067:
|
|
num = 1062147024;
|
|
}
|
|
}
|
|
|
|
public IReadOnlyCollection<uint> GetAllNpcIds()
|
|
{
|
|
EnsureBuilt();
|
|
return _cache.Keys;
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
private void EnsureBuilt(CancellationToken cancellationToken = default(CancellationToken))
|
|
{
|
|
int num = ((_cache == null) ? 699426378 : 699426379);
|
|
Dictionary<uint, (ushort, Vector3, bool)> dictionary = default(Dictionary<uint, (ushort, Vector3, bool)>);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 699426378;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 2:
|
|
goto IL_0050;
|
|
case 1:
|
|
return;
|
|
case 0:
|
|
{
|
|
object buildLock = _buildLock;
|
|
bool flag = false;
|
|
try
|
|
{
|
|
_200B_206A_200F_200D_200E_202A_200C_200E_206E_206B_206E_206A_202E_206E_206B_206F_200E_206B_206E_206D_202B_200D_202C_202A_206D_202A_202C_200C_206F_200F_206A_202D_206C_202A_200B_206A_202B_200E_206C_206D_202E(buildLock, ref flag);
|
|
num = ((_cache == null) ? 563419148 : 563419149);
|
|
while (true)
|
|
{
|
|
int num7 = num;
|
|
num3 = 563419150;
|
|
num4 = num7;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
num = 563419149;
|
|
break;
|
|
case 2:
|
|
dictionary = LoadFromDisk();
|
|
num = ((dictionary != null) ? 563419151 : 563419146);
|
|
break;
|
|
case 3:
|
|
return;
|
|
case 4:
|
|
dictionary = BuildNpcPositionCache(cancellationToken);
|
|
SaveToDisk(dictionary);
|
|
_202D_206F_206E_200E_200F_206F_206B_206A_202A_206E_206F_202B_206E_206E_202C_200F_202D_206B_206A_200F_206C_202D_202E_202C_200E_206A_200F_206B_202A_200D_202D_206D_206E_206B_200B_202C_206A_206B_202B_202A_202E((ILogger)_logger, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(955007798), new object[1] { dictionary.Count });
|
|
num = 563419151;
|
|
break;
|
|
case 1:
|
|
_cache = dictionary;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
finally
|
|
{
|
|
num = ((!flag) ? (-2036326357) : (-2036326358));
|
|
while (true)
|
|
{
|
|
int num8 = num;
|
|
num3 = -2036326357;
|
|
num4 = num8;
|
|
int num9 = num4 + num3;
|
|
int num10 = num4 & num3;
|
|
switch (num9 - (num10 + num10))
|
|
{
|
|
case 0:
|
|
goto end_IL_016e;
|
|
case 1:
|
|
_200D_200C_206C_202E_206E_206F_206F_202E_206A_200D_206B_202A_206D_200F_202D_206D_200E_200C_200D_202B_202B_206F_202C_202E_200B_206D_202E_206E_202E_202B_202B_200D_202D_206D_202E_200C_206A_206C_200F_202E_202E(buildLock);
|
|
num = -2036326357;
|
|
break;
|
|
case 2:
|
|
num = -2036326358;
|
|
break;
|
|
}
|
|
continue;
|
|
end_IL_016e:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
continue;
|
|
IL_0050:
|
|
num = 699426379;
|
|
}
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
private Dictionary<uint, (ushort TerritoryId, Vector3 Position, bool FestivalOnly)>? LoadFromDisk()
|
|
{
|
|
string cacheFilePath = CacheFilePath;
|
|
int num = ((cacheFilePath == null) ? 923324017 : 923324018);
|
|
int num10 = default(int);
|
|
int num11 = default(int);
|
|
Dictionary<uint, (ushort, Vector3, bool)> dictionary = default(Dictionary<uint, (ushort, Vector3, bool)>);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 923324017;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 2:
|
|
num = 923324018;
|
|
break;
|
|
case 3:
|
|
num = (_202E_202B_206B_202B_202C_200E_206A_200B_200E_202C_202C_202A_202A_206A_202B_202C_202B_206A_206D_206F_200F_206E_206A_206B_202D_200E_202B_206E_202B_202B_200D_200F_202A_206C_200F_200F_200F_206E_200E_200F_202E(cacheFilePath) ? 923324016 : 923324017);
|
|
break;
|
|
case 0:
|
|
return null;
|
|
case 1:
|
|
try
|
|
{
|
|
BinaryReader binaryReader = _202C_206B_202E_200D_206B_202A_202D_202D_202D_202A_206A_200D_206C_200F_206B_200D_202B_206D_202C_202D_200E_200D_202A_206B_202B_200B_202B_202E_206F_206C_206D_200F_202D_200B_202E_202C_202D_200D_202D_206B_202E((Stream)_202C_206E_200B_206F_200F_202B_202A_206E_200D_206A_200F_200F_206D_206F_200F_206D_200C_202B_202C_202A_200F_202C_200D_200F_202B_200F_206F_202E_206D_200D_206C_200B_206E_202A_202E_202B_206F_200C_202A_200F_202E(cacheFilePath));
|
|
try
|
|
{
|
|
num = ((_202B_202B_202D_202B_202B_202C_200F_202A_206F_202B_206C_206E_200D_206F_202C_202A_202C_202C_206D_206D_206B_202C_206C_202B_206B_202A_202A_206F_202E_206A_206D_200E_206C_200E_202B_200B_200C_202C_202A_200F_202E(binaryReader) != 1129336401) ? 1097724439 : 1097724435);
|
|
while (true)
|
|
{
|
|
int num7 = num;
|
|
num3 = 1097724436;
|
|
num4 = num7;
|
|
int num8 = num4 + num3;
|
|
int num9 = num4 & num3;
|
|
switch (num8 - (num9 + num9))
|
|
{
|
|
case 4:
|
|
num = ((num10 < num11) ? 1097724433 : 1097724434);
|
|
break;
|
|
case 3:
|
|
_202D_206F_206E_200E_200F_206F_206B_206A_202A_206E_206F_202B_206E_206E_202C_200F_202D_206B_206A_200F_206C_202D_202E_202C_200E_206A_200F_206B_202A_200D_202D_206D_206E_206B_200B_202C_206A_206B_202B_202A_202E((ILogger)_logger, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1352529546), Array.Empty<object>());
|
|
num = 1097724444;
|
|
break;
|
|
case 9:
|
|
num11 = _206F_200B_200D_206A_200E_200E_200F_200D_206E_206A_200D_206E_206B_200B_200F_206D_200B_200C_202C_200C_200C_202D_206D_202D_202D_206A_200F_200C_200C_200C_200C_202B_200E_200C_202A_206D_202E_206B_206E_200F_202E(binaryReader);
|
|
dictionary = new Dictionary<uint, (ushort, Vector3, bool)>(num11);
|
|
num10 = 0;
|
|
num = 1097724432;
|
|
break;
|
|
case 2:
|
|
num = ((!_206D_202D_202D_206C_206E_206B_206E_206A_200B_202B_202A_202B_202E_202D_202A_200C_202D_202A_206F_206F_200D_202C_200E_202A_200C_206A_202E_202B_206A_202E_202C_206A_202E_206B_202A_202B_206F_206D_200E_200C_202E(_206D_202A_202D_200F_202E_202C_200C_200E_200D_202E_206F_202D_202A_200B_206B_206D_206B_202C_206B_206D_206F_206C_206B_200E_206E_206C_206C_200E_206F_200C_200B_206E_202A_200C_202C_200B_202E_200C_206E_200E_202E(binaryReader), _options.GameVersion)) ? 1097724445 : 1097724437);
|
|
break;
|
|
case 6:
|
|
_202D_206F_206E_200E_200F_206F_206B_206A_202A_206E_206F_202B_206E_206E_202C_200F_202D_206B_206A_200F_206C_202D_202E_202C_200E_206A_200F_206B_202A_200D_202D_206D_206E_206B_200B_202C_206A_206B_202B_202A_202E((ILogger)_logger, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-922037796), new object[1] { dictionary.Count });
|
|
return dictionary;
|
|
case 5:
|
|
{
|
|
uint key = _202B_202B_202D_202B_202B_202C_200F_202A_206F_202B_206C_206E_200D_206F_202C_202A_202C_202C_206D_206D_206B_202C_206C_202B_206B_202A_202A_206F_202E_206A_206D_200E_206C_200E_202B_200B_200C_202C_202A_200F_202E(binaryReader);
|
|
ushort item = _202C_200B_202A_202E_206C_200E_200F_206C_200E_202E_202A_206C_202B_202C_202D_202A_202B_206D_202C_202C_200E_202E_202A_202D_200C_200F_200F_202C_206C_206A_202B_206F_202A_202C_202A_202D_202C_200B_206F_202E_202E(binaryReader);
|
|
Vector3 item2 = new Vector3(_206F_200B_202B_206A_206B_206A_200B_202C_202D_200D_206B_200B_206B_202B_202D_206A_206F_200B_206A_200B_206F_202C_202A_200E_206E_206D_206E_202D_206B_200F_202E_202E_200B_206B_206F_202E_206D_200D_206A_200E_202E(binaryReader), _206F_200B_202B_206A_206B_206A_200B_202C_202D_200D_206B_200B_206B_202B_202D_206A_206F_200B_206A_200B_206F_202C_202A_200E_206E_206D_206E_202D_206B_200F_202E_202E_200B_206B_206F_202E_206D_200D_206A_200E_202E(binaryReader), _206F_200B_202B_206A_206B_206A_200B_202C_202D_200D_206B_200B_206B_202B_202D_206A_206F_200B_206A_200B_206F_202C_202A_200E_206E_206D_206E_202D_206B_200F_202E_202E_200B_206B_206F_202E_206D_200D_206A_200E_202E(binaryReader));
|
|
bool item3 = _206A_200B_200D_200D_202C_202A_200B_206F_206D_202C_206C_202C_202B_202D_202C_202D_206F_200C_206E_200C_206E_200B_200F_202D_202A_200F_202E_202C_202B_206D_206A_206D_200B_200C_200B_200F_200F_202B_200C_206F_202E(binaryReader);
|
|
dictionary[key] = (item, item2, item3);
|
|
int num12 = num10;
|
|
num3 = 1;
|
|
num4 = num12;
|
|
int num13 = num4 ^ num3;
|
|
int num14 = num4 & num3;
|
|
num10 = num13 + (num14 + num14);
|
|
num = 1097724432;
|
|
break;
|
|
}
|
|
case 1:
|
|
_202D_206F_206E_200E_200F_206F_206B_206A_202A_206E_206F_202B_206E_206E_202C_200F_202D_206B_206A_200F_206C_202D_202E_202C_200E_206A_200F_206B_202A_200D_202D_206D_206E_206B_200B_202C_206A_206B_202B_202A_202E((ILogger)_logger, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-691142266), Array.Empty<object>());
|
|
num = 1097724444;
|
|
break;
|
|
case 0:
|
|
num = 1097724435;
|
|
break;
|
|
case 7:
|
|
num = ((_206F_200B_200D_206A_200E_200E_200F_200D_206E_206A_200D_206E_206B_200B_200F_206D_200B_200C_202C_200C_200C_202D_206D_202D_202D_206A_200F_200C_200C_200C_200C_202B_200E_200C_202A_206D_202E_206B_206E_200F_202E(binaryReader) == 1) ? 1097724438 : 1097724439);
|
|
break;
|
|
case 8:
|
|
goto end_IL_00bd;
|
|
}
|
|
continue;
|
|
end_IL_00bd:
|
|
break;
|
|
}
|
|
}
|
|
finally
|
|
{
|
|
num = ((binaryReader == null) ? (-215914217) : (-215914220));
|
|
while (true)
|
|
{
|
|
int num15 = num;
|
|
num3 = -215914218;
|
|
num4 = num15;
|
|
int num16 = num4 + num3;
|
|
int num17 = num4 & num3;
|
|
switch (num16 - (num17 + num17))
|
|
{
|
|
case 1:
|
|
goto end_IL_02b9;
|
|
case 2:
|
|
_206D_202C_200F_202A_200D_202A_206B_206D_202E_202D_200D_206B_202B_202D_200E_206F_202D_202A_202C_200D_202E_202D_206A_206E_206B_202D_200B_202C_206B_206A_202D_206E_202D_206A_206A_206F_206C_202B_200C_206A_202E((IDisposable)binaryReader);
|
|
num = -215914217;
|
|
break;
|
|
case 0:
|
|
num = -215914220;
|
|
break;
|
|
}
|
|
continue;
|
|
end_IL_02b9:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_200F_202C_202E_206C_206C_202B_206C_202D_202D_206E_202B_202D_200E_206B_206B_200B_206B_202B_206B_200B_202E_202C_206A_206B_206E_202A_200D_202C_202A_200F_202C_202A_202A_206F_206F_200E_202C_202B_200D_206D_202E((ILogger)_logger, ex, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1077656609), Array.Empty<object>());
|
|
}
|
|
try
|
|
{
|
|
_202B_202E_202C_206C_206B_206F_202C_200E_206E_200B_202A_206F_202A_200D_206C_206B_200F_200B_200E_200F_206B_202A_202C_206D_202E_206B_206E_200F_206C_200B_202B_206A_202B_206E_206D_202A_200C_206A_202B_202B_202E(cacheFilePath);
|
|
}
|
|
catch (Exception)
|
|
{
|
|
}
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
private void SaveToDisk(Dictionary<uint, (ushort TerritoryId, Vector3 Position, bool FestivalOnly)> cache)
|
|
{
|
|
string cacheFilePath = CacheFilePath;
|
|
int num = ((cacheFilePath != null) ? (-1878126128) : (-1878126125));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1878126126;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 0:
|
|
goto IL_0053;
|
|
case 1:
|
|
return;
|
|
case 2:
|
|
try
|
|
{
|
|
_206A_200D_206F_206D_200C_202A_200C_202D_206E_206C_206D_206E_206D_202D_206B_202D_206C_202B_200F_202E_206C_206D_200F_202D_202E_206E_200B_202B_200F_200B_206C_200D_206B_200D_202A_202E_206C_206B_200F_202A_202E(_options.CacheDirectory);
|
|
string text = _200D_200D_206D_206D_206E_200C_200E_202B_206F_200B_200C_200E_200D_202B_206E_206C_200F_202E_206B_200F_206D_206B_200C_200F_200F_206D_202B_202E_202D_206D_200C_200E_200E_206A_202A_206C_200E_206F_202D_206C_202E(cacheFilePath, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(236937827));
|
|
BinaryWriter binaryWriter = _202E_206F_200E_206B_206A_206D_206D_200F_206A_202A_200D_200F_200D_202C_200C_200F_206F_202A_202E_202E_202C_202B_206E_206F_200F_200C_200F_200B_200F_206F_202E_200B_200E_206C_206A_202C_206F_202D_202B_206C_202E((Stream)_206D_206E_202B_200B_200B_202A_202D_206F_206C_206F_206F_202B_200F_200E_206E_206D_206A_202C_202E_200E_206F_202C_200F_200E_200B_202A_202A_200E_200F_202C_202A_200C_202E_206C_202C_200C_206C_202B_202A_206D_202E(text));
|
|
try
|
|
{
|
|
_206F_202A_202B_206C_202E_200C_200B_200F_206D_200E_202D_202B_202D_206D_206B_206F_202D_200E_200C_200B_202E_200C_206E_200E_200E_200E_206E_206F_206F_206C_206F_200B_206E_206C_200E_202B_200F_200B_200D_206B_202E(binaryWriter, 1129336401u);
|
|
_200E_206C_202B_202B_200C_200B_200E_200D_200B_200D_206B_206E_202D_202A_206D_202D_200F_202A_200E_206E_200B_202C_206C_200C_200F_206B_202A_206D_206B_202C_206C_202B_206C_202A_202D_200F_206E_206D_206E_200F_202E(binaryWriter, 1);
|
|
_202A_202A_206F_206B_206A_200F_202D_206E_202D_206D_206D_202E_206A_202B_202D_202C_206E_202A_202A_202D_202E_202D_200C_202B_202A_206E_200C_200D_206B_206B_202A_200F_202B_202A_206C_202A_206B_202C_202B_206A_202E(binaryWriter, _options.GameVersion);
|
|
_200E_206C_202B_202B_200C_200B_200E_200D_200B_200D_206B_206E_202D_202A_206D_202D_200F_202A_200E_206E_200B_202C_206C_200C_200F_206B_202A_206D_206B_202C_206C_202B_206C_202A_202D_200F_206E_206D_206E_200F_202E(binaryWriter, cache.Count);
|
|
using Dictionary<uint, (ushort, Vector3, bool)>.Enumerator enumerator = cache.GetEnumerator();
|
|
num = 177392188;
|
|
while (true)
|
|
{
|
|
int num7 = num;
|
|
num3 = 177392188;
|
|
num4 = num7;
|
|
int num8 = num4 + num3;
|
|
int num9 = num4 & num3;
|
|
switch (num8 - (num9 + num9))
|
|
{
|
|
case 0:
|
|
num = (enumerator.MoveNext() ? 177392189 : 177392190);
|
|
break;
|
|
case 1:
|
|
var (num11, tuple2) = (KeyValuePair<uint, (ushort, Vector3, bool)>)(ref enumerator.Current);
|
|
_206F_202A_202B_206C_202E_200C_200B_200F_206D_200E_202D_202B_202D_206D_206B_206F_202D_200E_200C_200B_202E_200C_206E_200E_200E_200E_206E_206F_206F_206C_206F_200B_206E_206C_200E_202B_200F_200B_200D_206B_202E(binaryWriter, num11);
|
|
_206E_200B_200E_200C_200B_206E_206A_200D_202D_202D_200E_202A_202A_202E_202D_206E_206B_206F_202B_206C_202B_202C_206C_206E_202C_206E_200D_200C_206A_206F_200F_206E_206A_202B_202C_200C_200D_202B_202A_200E_202E(binaryWriter, tuple2.Item1);
|
|
_200E_202D_206C_202B_202A_206B_200D_202D_200B_206F_202C_202A_200E_202A_202B_200B_200D_202E_206F_200C_202A_202C_202E_206C_206B_202D_202E_202E_200D_206B_200B_206E_200C_206C_200F_202A_200C_202D_206D_200F_202E(binaryWriter, tuple2.Item2.X);
|
|
_200E_202D_206C_202B_202A_206B_200D_202D_200B_206F_202C_202A_200E_202A_202B_200B_200D_202E_206F_200C_202A_202C_202E_206C_206B_202D_202E_202E_200D_206B_200B_206E_200C_206C_200F_202A_200C_202D_206D_200F_202E(binaryWriter, tuple2.Item2.Y);
|
|
_200E_202D_206C_202B_202A_206B_200D_202D_200B_206F_202C_202A_200E_202A_202B_200B_200D_202E_206F_200C_202A_202C_202E_206C_206B_202D_202E_202E_200D_206B_200B_206E_200C_206C_200F_202A_200C_202D_206D_200F_202E(binaryWriter, tuple2.Item2.Z);
|
|
_200F_206E_202A_202E_200C_202D_206D_202B_206B_200B_200B_202A_200C_206D_206E_200B_206F_202D_200C_206E_206C_202D_206A_206A_206F_202C_200B_200F_206F_202C_200D_200E_202C_206C_202B_202A_206B_200B_202E_202E_202E(binaryWriter, tuple2.Item3);
|
|
num = 177392188;
|
|
break;
|
|
case 3:
|
|
num = 177392188;
|
|
break;
|
|
case 2:
|
|
goto end_IL_00d1;
|
|
}
|
|
continue;
|
|
end_IL_00d1:
|
|
break;
|
|
}
|
|
}
|
|
finally
|
|
{
|
|
num = ((binaryWriter == null) ? (-2116583790) : (-2116583791));
|
|
while (true)
|
|
{
|
|
int num12 = num;
|
|
num3 = -2116583789;
|
|
num4 = num12;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
num = -2116583791;
|
|
break;
|
|
case 1:
|
|
goto end_IL_01e9;
|
|
case 2:
|
|
_206D_202C_200F_202A_200D_202A_206B_206D_202E_202D_200D_206B_202B_202D_200E_206F_202D_202A_202C_200D_202E_202D_206A_206E_206B_202D_200B_202C_206B_206A_202D_206E_202D_206A_206A_206F_206C_202B_200C_206A_202E((IDisposable)binaryWriter);
|
|
num = -2116583790;
|
|
break;
|
|
}
|
|
continue;
|
|
end_IL_01e9:
|
|
break;
|
|
}
|
|
}
|
|
_206C_206F_200E_206B_200F_202E_206D_206F_202D_206B_202B_202C_200B_200B_206C_200F_202D_202B_202B_202B_200E_206A_200E_206E_206E_200D_206C_200E_202B_202A_206F_200E_202B_202C_202B_206C_200D_200E_206D_202B_202E(text, cacheFilePath, true);
|
|
return;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_200F_202C_202E_206C_206C_202B_206C_202D_202D_206E_202B_202D_200E_206B_206B_200B_206B_202B_206B_200B_202E_202C_206A_206B_206E_202A_200D_202C_202A_200F_202C_202A_202A_206F_206F_200E_202C_202B_200D_206D_202E((ILogger)_logger, ex, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1457796029), Array.Empty<object>());
|
|
return;
|
|
}
|
|
}
|
|
continue;
|
|
IL_0053:
|
|
num = -1878126125;
|
|
}
|
|
}
|
|
|
|
private Dictionary<uint, (ushort TerritoryId, Vector3 Position, bool FestivalOnly)> BuildNpcPositionCache(CancellationToken cancellationToken)
|
|
{
|
|
Dictionary<uint, (ushort, Vector3, bool)> dictionary = new Dictionary<uint, (ushort, Vector3, bool)>();
|
|
HashSet<uint> hashSet = new HashSet<uint>();
|
|
using (ExcelSheet<Aetheryte>.Enumerator enumerator = _dataManager.GetExcelSheet<Aetheryte>().GetEnumerator())
|
|
{
|
|
int num = -1281480948;
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1281480948;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 2:
|
|
num = -1281480948;
|
|
break;
|
|
case 0:
|
|
num = (enumerator.MoveNext() ? (-1281480945) : (-1281480947));
|
|
break;
|
|
case 3:
|
|
hashSet.Add(enumerator.Current.Territory.RowId);
|
|
num = -1281480948;
|
|
break;
|
|
case 1:
|
|
goto end_IL_0035;
|
|
}
|
|
continue;
|
|
end_IL_0035:
|
|
break;
|
|
}
|
|
}
|
|
ExcelSheet<TerritoryType> excelSheet = _dataManager.GetExcelSheet<TerritoryType>();
|
|
HashSet<string> visitedLgbPaths = new HashSet<string>();
|
|
using (ExcelSheet<TerritoryType>.Enumerator enumerator2 = excelSheet.GetEnumerator())
|
|
{
|
|
int num = 1492955023;
|
|
TerritoryType current = default(TerritoryType);
|
|
while (true)
|
|
{
|
|
int num5 = num;
|
|
int num3 = 1492955023;
|
|
int num4 = num5;
|
|
int num6 = num4 + num3;
|
|
int num7 = num4 & num3;
|
|
switch (num6 - (num7 + num7))
|
|
{
|
|
case 0:
|
|
num = (enumerator2.MoveNext() ? 1492955019 : 1492955022);
|
|
break;
|
|
case 3:
|
|
ScanLgbFiles(dictionary, visitedLgbPaths, current, cancellationToken);
|
|
num = 1492955023;
|
|
break;
|
|
case 4:
|
|
current = enumerator2.Current;
|
|
num = ((!hashSet.Contains(current.RowId)) ? 1492955023 : 1492955020);
|
|
break;
|
|
case 2:
|
|
num = 1492955023;
|
|
break;
|
|
case 1:
|
|
goto end_IL_0105;
|
|
}
|
|
continue;
|
|
end_IL_0105:
|
|
break;
|
|
}
|
|
}
|
|
using (ExcelSheet<TerritoryType>.Enumerator enumerator2 = excelSheet.GetEnumerator())
|
|
{
|
|
int num = -1441158644;
|
|
while (true)
|
|
{
|
|
int num8 = num;
|
|
int num3 = -1441158642;
|
|
int num4 = num8;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 3:
|
|
num = -1441158644;
|
|
break;
|
|
case 2:
|
|
num = (enumerator2.MoveNext() ? (-1441158641) : (-1441158642));
|
|
break;
|
|
case 1:
|
|
{
|
|
TerritoryType current2 = enumerator2.Current;
|
|
ScanLgbFiles(dictionary, visitedLgbPaths, current2, cancellationToken);
|
|
num = -1441158644;
|
|
break;
|
|
}
|
|
case 0:
|
|
goto end_IL_01dc;
|
|
}
|
|
continue;
|
|
end_IL_01dc:
|
|
break;
|
|
}
|
|
}
|
|
ExcelSheet<ENpcBase> excelSheet2 = _dataManager.GetExcelSheet<ENpcBase>();
|
|
ExcelSheet<EObj> excelSheet3 = _dataManager.GetExcelSheet<EObj>();
|
|
using ExcelSheet<Level>.Enumerator enumerator3 = _dataManager.GetExcelSheet<Level>().GetEnumerator();
|
|
int num = -1886979544;
|
|
Level current3 = default(Level);
|
|
while (true)
|
|
{
|
|
int num9 = num;
|
|
int num3 = -1886979543;
|
|
int num4 = num9;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 3:
|
|
num = ((!excelSheet3.HasRow(current3.Object.RowId)) ? (-1886979544) : (-1886979537));
|
|
break;
|
|
case 5:
|
|
num = ((!current3.Territory.IsValid) ? (-1886979544) : (-1886979551));
|
|
break;
|
|
case 2:
|
|
num = ((current3.Object.RowId == 0) ? (-1886979544) : (-1886979540));
|
|
break;
|
|
case 7:
|
|
current3 = enumerator3.Current;
|
|
num = ((current3.RowId == 0) ? (-1886979544) : (-1886979541));
|
|
break;
|
|
case 6:
|
|
dictionary.TryAdd(current3.Object.RowId, ((ushort)current3.Territory.RowId, new Vector3(current3.X, current3.Y, current3.Z), false));
|
|
num = -1886979544;
|
|
break;
|
|
case 8:
|
|
num = (excelSheet2.HasRow(current3.Object.RowId) ? (-1886979537) : (-1886979542));
|
|
break;
|
|
case 0:
|
|
num = -1886979544;
|
|
break;
|
|
case 1:
|
|
num = (enumerator3.MoveNext() ? (-1886979538) : (-1886979539));
|
|
break;
|
|
case 4:
|
|
return dictionary;
|
|
}
|
|
}
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
private void ScanLgbFiles(Dictionary<uint, (ushort TerritoryId, Vector3 Position, bool FestivalOnly)> cache, HashSet<string> visitedLgbPaths, TerritoryType territory, CancellationToken cancellationToken)
|
|
{
|
|
cancellationToken.ThrowIfCancellationRequested();
|
|
string text = territory.Bg.ExtractText();
|
|
int num = ((!_206B_202C_200C_202A_200C_202B_200D_206B_206D_206C_200C_206E_200D_202E_202C_206E_206F_200E_202B_200E_202A_206C_202E_200E_202E_202D_206A_206B_206B_200B_200B_202B_200D_202E_202E_206E_200F_202B_206A_202E(text)) ? (-1877077488) : (-1877077481));
|
|
int num10 = default(int);
|
|
LgbFile file = default(LgbFile);
|
|
(ushort, Vector3, bool) value = default((ushort, Vector3, bool));
|
|
bool flag = default(bool);
|
|
uint baseId = default(uint);
|
|
LayerCommon.InstanceObject instanceObject = default(LayerCommon.InstanceObject);
|
|
LayerCommon.InstanceObject[] instanceObjects = default(LayerCommon.InstanceObject[]);
|
|
int num17 = default(int);
|
|
LayerCommon.Layer[] array = default(LayerCommon.Layer[]);
|
|
int num14 = default(int);
|
|
LayerCommon.Layer layer = default(LayerCommon.Layer);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1877077484;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 0:
|
|
num = -1877077481;
|
|
break;
|
|
case 3:
|
|
return;
|
|
case 4:
|
|
num10 = _206A_200D_206A_200C_202E_202A_202C_202C_202E_206C_206B_200F_202A_200B_202A_206D_206C_202D_200F_200B_200C_206A_200C_206A_202E_200D_206C_206B_206D_200E_200F_206A_202D_202D_200E_206A_200D_202C_206D_200C_202E(text, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(507453428), StringComparison.Ordinal);
|
|
num = ((num10 >= 0) ? (-1877077482) : (-1877077483));
|
|
break;
|
|
case 1:
|
|
return;
|
|
case 2:
|
|
{
|
|
int num7 = 0;
|
|
string[] lgbFileNames = LgbFileNames;
|
|
int num8 = 0;
|
|
while (true)
|
|
{
|
|
if (num8 < lgbFileNames.Length)
|
|
{
|
|
string text2 = lgbFileNames[num8];
|
|
string[] obj = new string[5]
|
|
{
|
|
global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-849387939),
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
};
|
|
int num9 = num10;
|
|
num3 = 1;
|
|
num4 = num9;
|
|
obj[1] = _202D_202D_200D_206A_206D_202D_200B_202A_200B_202B_202D_206C_206C_202B_202E_206F_200C_206A_202D_206C_200B_200E_202E_200E_200B_206C_200D_202B_206F_202A_200E_202D_202D_202B_200C_200E_200C_202E_202A_206C_202E(text, 0, (num4 | num3) + (num4 & num3));
|
|
obj[2] = global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(993927731);
|
|
obj[3] = text2;
|
|
obj[4] = global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(2127002196);
|
|
string text3 = _202D_202D_206A_206E_200C_200E_200D_206C_200D_206E_200C_200D_202E_202A_206D_206D_200E_202B_206E_206A_206E_206E_206B_202E_206C_202D_206F_200B_206D_206A_206A_206C_202D_206B_206F_200C_202C_200B_202D_206E_202E(obj);
|
|
if (!visitedLgbPaths.Add(text3))
|
|
{
|
|
goto IL_0458;
|
|
}
|
|
try
|
|
{
|
|
file = _dataManager.GetFile<LgbFile>(text3);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_206D_206F_200F_202C_200C_206A_206A_206C_200F_202B_206F_206D_200E_200D_202C_202D_200D_200D_202A_200E_200E_206E_202B_200F_202D_206C_206F_206B_202D_206E_202B_202A_206C_206B_200B_206A_200C_202E_206D_202D_202E((ILogger)_logger, ex, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1684031378), new object[1] { text3 });
|
|
goto IL_0458;
|
|
}
|
|
num = ((file == null) ? (-959666391) : (-959666381));
|
|
}
|
|
else
|
|
{
|
|
num = -959666382;
|
|
}
|
|
while (true)
|
|
{
|
|
int num11 = num;
|
|
num3 = -959666372;
|
|
num4 = num11;
|
|
int num12;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
default:
|
|
continue;
|
|
case 3:
|
|
num = ((!(_options.ScanThrottle > TimeSpan.Zero)) ? (-959666387) : (-959666380));
|
|
continue;
|
|
case 0:
|
|
{
|
|
bool num18 = !value.Item3;
|
|
num3 = (flag ? 1 : 0);
|
|
num4 = (num18 ? 1 : 0);
|
|
num = ((num4 + num3 - (num4 & num3) != 0) ? (-959666376) : (-959666373));
|
|
continue;
|
|
}
|
|
case 19:
|
|
num = -959666381;
|
|
continue;
|
|
case 13:
|
|
baseId = ((LayerCommon.EventInstanceObject)instanceObject.Object).ParentData.BaseId;
|
|
num = -959666386;
|
|
continue;
|
|
case 11:
|
|
instanceObject = instanceObjects[num17];
|
|
num = ((instanceObject.AssetType != LayerEntryType.EventNPC) ? (-959666374) : (-959666379));
|
|
continue;
|
|
case 6:
|
|
num = ((instanceObject.AssetType != LayerEntryType.EventObject) ? (-959666376) : (-959666383));
|
|
continue;
|
|
case 17:
|
|
return;
|
|
case 7:
|
|
cache[baseId] = ((ushort)territory.RowId, new Vector3(instanceObject.Transform.Translation.X, instanceObject.Transform.Translation.Y, instanceObject.Transform.Translation.Z), flag);
|
|
num = -959666376;
|
|
continue;
|
|
case 15:
|
|
{
|
|
int num19 = num7;
|
|
num3 = 1;
|
|
num4 = num19;
|
|
num7 = (num4 | num3) + (num4 & num3);
|
|
array = _202B_202E_206F_206F_202B_200B_206B_202A_206E_206D_206F_202E_202E_200D_200C_206D_206F_202A_200D_206F_206E_206C_202A_200B_202D_206B_202D_200B_206E_200C_206E_206B_206F_206F_200C_206E_202A_202A_200C_200C_202E(file);
|
|
num14 = 0;
|
|
num = -959666384;
|
|
continue;
|
|
}
|
|
case 14:
|
|
num = ((num7 <= 0) ? (-959666387) : (-959666369));
|
|
continue;
|
|
case 2:
|
|
num12 = ((layer.IsTemporary != 0) ? 1 : 0);
|
|
goto IL_051b;
|
|
case 8:
|
|
_206C_200B_206C_206F_206E_206A_206C_206A_206F_200D_206A_202E_206F_206B_200B_200C_206E_206E_206D_202D_200B_202B_202A_200D_206A_206C_206C_200D_200C_202A_202C_202B_206A_206D_200B_200B_202B_206C_202E_206A_202E(_options.ScanThrottle);
|
|
num = -959666387;
|
|
continue;
|
|
case 4:
|
|
{
|
|
int num20 = num17;
|
|
num3 = 1;
|
|
num4 = num20;
|
|
num17 = (num4 | num3) + (num4 & num3);
|
|
num = -959666371;
|
|
continue;
|
|
}
|
|
case 9:
|
|
baseId = ((LayerCommon.ENPCInstanceObject)instanceObject.Object).ParentData.ParentData.BaseId;
|
|
num = -959666386;
|
|
continue;
|
|
case 18:
|
|
num = ((baseId == 0) ? (-959666376) : (-959666388));
|
|
continue;
|
|
case 16:
|
|
num = ((!cache.TryGetValue(baseId, out value)) ? (-959666373) : (-959666372));
|
|
continue;
|
|
case 21:
|
|
break;
|
|
case 5:
|
|
layer = array[num14];
|
|
num = ((layer.FestivalID != 0) ? (-959666378) : (-959666370));
|
|
continue;
|
|
case 1:
|
|
num = ((num17 < instanceObjects.Length) ? (-959666377) : (-959666392));
|
|
continue;
|
|
case 12:
|
|
num = ((num14 < array.Length) ? (-959666375) : (-959666391));
|
|
continue;
|
|
case 20:
|
|
{
|
|
int num13 = num14;
|
|
num3 = 1;
|
|
num4 = num13;
|
|
int num15 = num4 ^ num3;
|
|
int num16 = num4 & num3;
|
|
num14 = num15 + (num16 + num16);
|
|
num = -959666384;
|
|
continue;
|
|
}
|
|
case 10:
|
|
{
|
|
num12 = 1;
|
|
goto IL_051b;
|
|
}
|
|
IL_051b:
|
|
flag = (byte)num12 != 0;
|
|
instanceObjects = layer.InstanceObjects;
|
|
num17 = 0;
|
|
num = -959666371;
|
|
continue;
|
|
}
|
|
break;
|
|
}
|
|
goto IL_0458;
|
|
IL_0458:
|
|
int num21 = num8;
|
|
num3 = 1;
|
|
num4 = num21;
|
|
num8 = (num4 | num3) + (num4 & num3);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
static object _202C_200B_202B_202C_206D_206E_202B_202C_200B_206B_200C_206C_202A_200B_200F_202C_206B_200E_206A_206D_200F_200D_206B_206D_200B_200C_206D_200D_206F_202E_202A_206E_202B_206C_206D_200F_206C_200D_206A_206B_202E()
|
|
{
|
|
return new object();
|
|
}
|
|
|
|
static void _200B_206A_200F_200D_200E_202A_200C_200E_206E_206B_206E_206A_202E_206E_206B_206F_200E_206B_206E_206D_202B_200D_202C_202A_206D_202A_202C_200C_206F_200F_206A_202D_206C_202A_200B_206A_202B_200E_206C_206D_202E(object P_0, ref bool P_1)
|
|
{
|
|
Monitor.Enter(P_0, ref P_1);
|
|
}
|
|
|
|
static void _200D_200C_206C_202E_206E_206F_206F_202E_206A_200D_206B_202A_206D_200F_202D_206D_200E_200C_200D_202B_202B_206F_202C_202E_200B_206D_202E_206E_202E_202B_202B_200D_202D_206D_202E_200C_206A_206C_200F_202E_202E(object P_0)
|
|
{
|
|
Monitor.Exit(P_0);
|
|
}
|
|
|
|
static void _202D_206F_206E_200E_200F_206F_206B_206A_202A_206E_206F_202B_206E_206E_202C_200F_202D_206B_206A_200F_206C_202D_202E_202C_200E_206A_200F_206B_202A_200D_202D_206D_206E_206B_200B_202C_206A_206B_202B_202A_202E(ILogger P_0, string P_1, object[] P_2)
|
|
{
|
|
P_0.LogDebug(P_1, P_2);
|
|
}
|
|
|
|
static bool _206B_202C_200C_202A_200C_202B_200D_206B_206D_206C_200C_206E_200D_202E_202C_206E_206F_200E_202B_200E_202A_206C_202E_200E_202E_202D_206A_206B_206B_200B_200B_202B_200D_202E_202E_206E_200F_202B_206A_202E(string P_0)
|
|
{
|
|
return string.IsNullOrEmpty(P_0);
|
|
}
|
|
|
|
static string _202A_206E_206D_202D_206F_200F_206B_206D_206F_202C_206A_202B_200B_206F_206C_206B_200E_206A_206A_202B_206F_200D_200F_202C_206D_202B_200F_200E_200C_202B_206A_206F_206D_202B_206B_202B_206A_206D_206E_202A_202E(string P_0, string P_1)
|
|
{
|
|
return Path.Combine(P_0, P_1);
|
|
}
|
|
|
|
static bool _202E_202B_206B_202B_202C_200E_206A_200B_200E_202C_202C_202A_202A_206A_202B_202C_202B_206A_206D_206F_200F_206E_206A_206B_202D_200E_202B_206E_202B_202B_200D_200F_202A_206C_200F_200F_200F_206E_200E_200F_202E(string P_0)
|
|
{
|
|
return File.Exists(P_0);
|
|
}
|
|
|
|
static FileStream _202C_206E_200B_206F_200F_202B_202A_206E_200D_206A_200F_200F_206D_206F_200F_206D_200C_202B_202C_202A_200F_202C_200D_200F_202B_200F_206F_202E_206D_200D_206C_200B_206E_202A_202E_202B_206F_200C_202A_200F_202E(string P_0)
|
|
{
|
|
return File.OpenRead(P_0);
|
|
}
|
|
|
|
static BinaryReader _202C_206B_202E_200D_206B_202A_202D_202D_202D_202A_206A_200D_206C_200F_206B_200D_202B_206D_202C_202D_200E_200D_202A_206B_202B_200B_202B_202E_206F_206C_206D_200F_202D_200B_202E_202C_202D_200D_202D_206B_202E(Stream P_0)
|
|
{
|
|
return new BinaryReader(P_0);
|
|
}
|
|
|
|
static uint _202B_202B_202D_202B_202B_202C_200F_202A_206F_202B_206C_206E_200D_206F_202C_202A_202C_202C_206D_206D_206B_202C_206C_202B_206B_202A_202A_206F_202E_206A_206D_200E_206C_200E_202B_200B_200C_202C_202A_200F_202E(BinaryReader P_0)
|
|
{
|
|
return P_0.ReadUInt32();
|
|
}
|
|
|
|
static int _206F_200B_200D_206A_200E_200E_200F_200D_206E_206A_200D_206E_206B_200B_200F_206D_200B_200C_202C_200C_200C_202D_206D_202D_202D_206A_200F_200C_200C_200C_200C_202B_200E_200C_202A_206D_202E_206B_206E_200F_202E(BinaryReader P_0)
|
|
{
|
|
return P_0.ReadInt32();
|
|
}
|
|
|
|
static string _206D_202A_202D_200F_202E_202C_200C_200E_200D_202E_206F_202D_202A_200B_206B_206D_206B_202C_206B_206D_206F_206C_206B_200E_206E_206C_206C_200E_206F_200C_200B_206E_202A_200C_202C_200B_202E_200C_206E_200E_202E(BinaryReader P_0)
|
|
{
|
|
return P_0.ReadString();
|
|
}
|
|
|
|
static bool _206D_202D_202D_206C_206E_206B_206E_206A_200B_202B_202A_202B_202E_202D_202A_200C_202D_202A_206F_206F_200D_202C_200E_202A_200C_206A_202E_202B_206A_202E_202C_206A_202E_206B_202A_202B_206F_206D_200E_200C_202E(string P_0, string P_1)
|
|
{
|
|
return P_0 != P_1;
|
|
}
|
|
|
|
static ushort _202C_200B_202A_202E_206C_200E_200F_206C_200E_202E_202A_206C_202B_202C_202D_202A_202B_206D_202C_202C_200E_202E_202A_202D_200C_200F_200F_202C_206C_206A_202B_206F_202A_202C_202A_202D_202C_200B_206F_202E_202E(BinaryReader P_0)
|
|
{
|
|
return P_0.ReadUInt16();
|
|
}
|
|
|
|
static float _206F_200B_202B_206A_206B_206A_200B_202C_202D_200D_206B_200B_206B_202B_202D_206A_206F_200B_206A_200B_206F_202C_202A_200E_206E_206D_206E_202D_206B_200F_202E_202E_200B_206B_206F_202E_206D_200D_206A_200E_202E(BinaryReader P_0)
|
|
{
|
|
return P_0.ReadSingle();
|
|
}
|
|
|
|
static bool _206A_200B_200D_200D_202C_202A_200B_206F_206D_202C_206C_202C_202B_202D_202C_202D_206F_200C_206E_200C_206E_200B_200F_202D_202A_200F_202E_202C_202B_206D_206A_206D_200B_200C_200B_200F_200F_202B_200C_206F_202E(BinaryReader P_0)
|
|
{
|
|
return P_0.ReadBoolean();
|
|
}
|
|
|
|
static void _206D_202C_200F_202A_200D_202A_206B_206D_202E_202D_200D_206B_202B_202D_200E_206F_202D_202A_202C_200D_202E_202D_206A_206E_206B_202D_200B_202C_206B_206A_202D_206E_202D_206A_206A_206F_206C_202B_200C_206A_202E(IDisposable P_0)
|
|
{
|
|
P_0.Dispose();
|
|
}
|
|
|
|
static void _200F_202C_202E_206C_206C_202B_206C_202D_202D_206E_202B_202D_200E_206B_206B_200B_206B_202B_206B_200B_202E_202C_206A_206B_206E_202A_200D_202C_202A_200F_202C_202A_202A_206F_206F_200E_202C_202B_200D_206D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3)
|
|
{
|
|
P_0.LogWarning(P_1, P_2, P_3);
|
|
}
|
|
|
|
static void _202B_202E_202C_206C_206B_206F_202C_200E_206E_200B_202A_206F_202A_200D_206C_206B_200F_200B_200E_200F_206B_202A_202C_206D_202E_206B_206E_200F_206C_200B_202B_206A_202B_206E_206D_202A_200C_206A_202B_202B_202E(string P_0)
|
|
{
|
|
File.Delete(P_0);
|
|
}
|
|
|
|
static DirectoryInfo _206A_200D_206F_206D_200C_202A_200C_202D_206E_206C_206D_206E_206D_202D_206B_202D_206C_202B_200F_202E_206C_206D_200F_202D_202E_206E_200B_202B_200F_200B_206C_200D_206B_200D_202A_202E_206C_206B_200F_202A_202E(string P_0)
|
|
{
|
|
return Directory.CreateDirectory(P_0);
|
|
}
|
|
|
|
static string _200D_200D_206D_206D_206E_200C_200E_202B_206F_200B_200C_200E_200D_202B_206E_206C_200F_202E_206B_200F_206D_206B_200C_200F_200F_206D_202B_202E_202D_206D_200C_200E_200E_206A_202A_206C_200E_206F_202D_206C_202E(string P_0, string P_1)
|
|
{
|
|
return P_0 + P_1;
|
|
}
|
|
|
|
static FileStream _206D_206E_202B_200B_200B_202A_202D_206F_206C_206F_206F_202B_200F_200E_206E_206D_206A_202C_202E_200E_206F_202C_200F_200E_200B_202A_202A_200E_200F_202C_202A_200C_202E_206C_202C_200C_206C_202B_202A_206D_202E(string P_0)
|
|
{
|
|
return File.Create(P_0);
|
|
}
|
|
|
|
static BinaryWriter _202E_206F_200E_206B_206A_206D_206D_200F_206A_202A_200D_200F_200D_202C_200C_200F_206F_202A_202E_202E_202C_202B_206E_206F_200F_200C_200F_200B_200F_206F_202E_200B_200E_206C_206A_202C_206F_202D_202B_206C_202E(Stream P_0)
|
|
{
|
|
return new BinaryWriter(P_0);
|
|
}
|
|
|
|
static void _206F_202A_202B_206C_202E_200C_200B_200F_206D_200E_202D_202B_202D_206D_206B_206F_202D_200E_200C_200B_202E_200C_206E_200E_200E_200E_206E_206F_206F_206C_206F_200B_206E_206C_200E_202B_200F_200B_200D_206B_202E(BinaryWriter P_0, uint P_1)
|
|
{
|
|
P_0.Write(P_1);
|
|
}
|
|
|
|
static void _200E_206C_202B_202B_200C_200B_200E_200D_200B_200D_206B_206E_202D_202A_206D_202D_200F_202A_200E_206E_200B_202C_206C_200C_200F_206B_202A_206D_206B_202C_206C_202B_206C_202A_202D_200F_206E_206D_206E_200F_202E(BinaryWriter P_0, int P_1)
|
|
{
|
|
P_0.Write(P_1);
|
|
}
|
|
|
|
static void _202A_202A_206F_206B_206A_200F_202D_206E_202D_206D_206D_202E_206A_202B_202D_202C_206E_202A_202A_202D_202E_202D_200C_202B_202A_206E_200C_200D_206B_206B_202A_200F_202B_202A_206C_202A_206B_202C_202B_206A_202E(BinaryWriter P_0, string P_1)
|
|
{
|
|
P_0.Write(P_1);
|
|
}
|
|
|
|
static void _206E_200B_200E_200C_200B_206E_206A_200D_202D_202D_200E_202A_202A_202E_202D_206E_206B_206F_202B_206C_202B_202C_206C_206E_202C_206E_200D_200C_206A_206F_200F_206E_206A_202B_202C_200C_200D_202B_202A_200E_202E(BinaryWriter P_0, ushort P_1)
|
|
{
|
|
P_0.Write(P_1);
|
|
}
|
|
|
|
static void _200E_202D_206C_202B_202A_206B_200D_202D_200B_206F_202C_202A_200E_202A_202B_200B_200D_202E_206F_200C_202A_202C_202E_206C_206B_202D_202E_202E_200D_206B_200B_206E_200C_206C_200F_202A_200C_202D_206D_200F_202E(BinaryWriter P_0, float P_1)
|
|
{
|
|
P_0.Write(P_1);
|
|
}
|
|
|
|
static void _200F_206E_202A_202E_200C_202D_206D_202B_206B_200B_200B_202A_200C_206D_206E_200B_206F_202D_200C_206E_206C_202D_206A_206A_206F_202C_200B_200F_206F_202C_200D_200E_202C_206C_202B_202A_206B_200B_202E_202E_202E(BinaryWriter P_0, bool P_1)
|
|
{
|
|
P_0.Write(P_1);
|
|
}
|
|
|
|
static void _206C_206F_200E_206B_200F_202E_206D_206F_202D_206B_202B_202C_200B_200B_206C_200F_202D_202B_202B_202B_200E_206A_200E_206E_206E_200D_206C_200E_202B_202A_206F_200E_202B_202C_202B_206C_200D_200E_206D_202B_202E(string P_0, string P_1, bool P_2)
|
|
{
|
|
File.Move(P_0, P_1, P_2);
|
|
}
|
|
|
|
static int _206A_200D_206A_200C_202E_202A_202C_202C_202E_206C_206B_200F_202A_200B_202A_206D_206C_202D_200F_200B_200C_206A_200C_206A_202E_200D_206C_206B_206D_200E_200F_206A_202D_202D_200E_206A_200D_202C_206D_200C_202E(string P_0, string P_1, StringComparison P_2)
|
|
{
|
|
return P_0.IndexOf(P_1, P_2);
|
|
}
|
|
|
|
static string _202D_202D_200D_206A_206D_202D_200B_202A_200B_202B_202D_206C_206C_202B_202E_206F_200C_206A_202D_206C_200B_200E_202E_200E_200B_206C_200D_202B_206F_202A_200E_202D_202D_202B_200C_200E_200C_202E_202A_206C_202E(string P_0, int P_1, int P_2)
|
|
{
|
|
return P_0.Substring(P_1, P_2);
|
|
}
|
|
|
|
static string _202D_202D_206A_206E_200C_200E_200D_206C_200D_206E_200C_200D_202E_202A_206D_206D_200E_202B_206E_206A_206E_206E_206B_202E_206C_202D_206F_200B_206D_206A_206A_206C_202D_206B_206F_200C_202C_200B_202D_206E_202E(string[] P_0)
|
|
{
|
|
return string.Concat(P_0);
|
|
}
|
|
|
|
static void _206D_206F_200F_202C_200C_206A_206A_206C_200F_202B_206F_206D_200E_200D_202C_202D_200D_200D_202A_200E_200E_206E_202B_200F_202D_206C_206F_206B_202D_206E_202B_202A_206C_206B_200B_206A_200C_202E_206D_202D_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[] _202B_202E_206F_206F_202B_200B_206B_202A_206E_206D_206F_202E_202E_200D_200C_206D_206F_202A_200D_206F_206E_206C_202A_200B_202D_206B_202D_200B_206E_200C_206E_206B_206F_206F_200C_206E_202A_202A_200C_200C_202E(LgbFile P_0)
|
|
{
|
|
return P_0.Layers;
|
|
}
|
|
|
|
static void _206C_200B_206C_206F_206E_206A_206C_206A_206F_200D_206A_202E_206F_206B_200B_200C_206E_206E_206D_202D_200B_202B_202A_200D_206A_206C_206C_200D_200C_202A_202C_202B_206A_206D_200B_200B_202B_206C_202E_206A_202E(TimeSpan P_0)
|
|
{
|
|
Thread.Sleep(P_0);
|
|
}
|
|
}
|