|  | @@ -3,6 +3,7 @@ using System.Collections.Generic;
 | 
	
		
			
				|  |  |  using System.IO;
 | 
	
		
			
				|  |  |  using System.Linq;
 | 
	
		
			
				|  |  |  using System.Text;
 | 
	
		
			
				|  |  | +using System.Text.RegularExpressions;
 | 
	
		
			
				|  |  |  using I2.Loc;
 | 
	
		
			
				|  |  |  using UnityEngine;
 | 
	
		
			
				|  |  |  using wf;
 | 
	
	
		
			
				|  | @@ -307,9 +308,9 @@ public class GameUty
 | 
	
		
			
				|  |  |  					{
 | 
	
		
			
				|  |  |  						GameUty.ExistCsvPathList.Add(text30);
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  | -					for (int num12 = 2; num12 <= check_ver_no; num12++)
 | 
	
		
			
				|  |  | +					for (int num15 = 2; num15 <= check_ver_no; num15++)
 | 
	
		
			
				|  |  |  					{
 | 
	
		
			
				|  |  | -						AddFolderOrArchive(text31 + "_" + num12);
 | 
	
		
			
				|  |  | +						AddFolderOrArchive(text31 + "_" + num15);
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  			}
 | 
	
	
		
			
				|  | @@ -330,7 +331,7 @@ public class GameUty
 | 
	
		
			
				|  |  |  					{
 | 
	
		
			
				|  |  |  						GameUty.ExistCsvPathList.Add(text30);
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  | -					for (int num12 = 2; num12 <= check_ver_no; num12++)
 | 
	
		
			
				|  |  | +					for (int num15 = 2; num15 <= check_ver_no; num15++)
 | 
	
		
			
				|  |  |  					{
 | 
	
		
			
				|  |  |  						AddFolderOrArchive(string.Concat(new object[]
 | 
	
		
			
				|  |  |  						{
 | 
	
	
		
			
				|  | @@ -338,7 +339,31 @@ public class GameUty
 | 
	
		
			
				|  |  |  							"_",
 | 
	
		
			
				|  |  |  							text30,
 | 
	
		
			
				|  |  |  							"_",
 | 
	
		
			
				|  |  | -							num12
 | 
	
		
			
				|  |  | +							num15
 | 
	
		
			
				|  |  | +						}));
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		};
 | 
	
		
			
				|  |  | +		Action<string> action3 = delegate(string name)
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			foreach (string text30 in GameUty.PathList)
 | 
	
		
			
				|  |  | +			{
 | 
	
		
			
				|  |  | +				if (AddFolderOrArchive(name + "_" + text30))
 | 
	
		
			
				|  |  | +				{
 | 
	
		
			
				|  |  | +					if (name == "csv")
 | 
	
		
			
				|  |  | +					{
 | 
	
		
			
				|  |  | +						GameUty.ExistCsvPathList.Add(text30);
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +					for (int num15 = 2; num15 <= check_ver_no; num15++)
 | 
	
		
			
				|  |  | +					{
 | 
	
		
			
				|  |  | +						AddFolderOrArchive(string.Concat(new object[]
 | 
	
		
			
				|  |  | +						{
 | 
	
		
			
				|  |  | +							name,
 | 
	
		
			
				|  |  | +							"_",
 | 
	
		
			
				|  |  | +							text30,
 | 
	
		
			
				|  |  | +							"_",
 | 
	
		
			
				|  |  | +							num15
 | 
	
		
			
				|  |  |  						}));
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  |  				}
 | 
	
	
		
			
				|  | @@ -393,9 +418,9 @@ public class GameUty
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  |  					if (flag)
 | 
	
		
			
				|  |  |  					{
 | 
	
		
			
				|  |  | -						for (int i = 2; i <= check_ver_no; i++)
 | 
	
		
			
				|  |  | +						for (int i2 = 2; i2 <= check_ver_no; i2++)
 | 
	
		
			
				|  |  |  						{
 | 
	
		
			
				|  |  | -							AddFolderOrArchive(text3 + "_" + i);
 | 
	
		
			
				|  |  | +							AddFolderOrArchive(text3 + "_" + i2);
 | 
	
		
			
				|  |  |  						}
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  |  				}
 | 
	
	
		
			
				|  | @@ -655,8 +680,9 @@ public class GameUty
 | 
	
		
			
				|  |  |  			AddFolderOrArchive("voice");
 | 
	
		
			
				|  |  |  			for (int num6 = 0; num6 < 25; num6++)
 | 
	
		
			
				|  |  |  			{
 | 
	
		
			
				|  |  | -				string arg = "voice" + "_" + ((char)(97 + num6)).ToString();
 | 
	
		
			
				|  |  | -				AddFolderOrArchive(arg);
 | 
	
		
			
				|  |  | +				string arg = "voice";
 | 
	
		
			
				|  |  | +				string arg2 = arg + "_" + (char)(97 + num6);
 | 
	
		
			
				|  |  | +				AddFolderOrArchive(arg2);
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  			foreach (string text25 in GameUty.PathList)
 | 
	
		
			
				|  |  |  			{
 | 
	
	
		
			
				|  | @@ -678,8 +704,8 @@ public class GameUty
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  			for (int num8 = 2; num8 <= check_ver_no; num8++)
 | 
	
		
			
				|  |  |  			{
 | 
	
		
			
				|  |  | -				string arg2 = "voice";
 | 
	
		
			
				|  |  | -				AddFolderOrArchive(arg2 + num8);
 | 
	
		
			
				|  |  | +				string arg3 = "voice";
 | 
	
		
			
				|  |  | +				AddFolderOrArchive(arg3 + num8);
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  			string text27 = "parts";
 | 
	
		
			
				|  |  |  			NDebug.Assert(AddFolderOrArchive(text27), str + text27);
 | 
	
	
		
			
				|  | @@ -701,9 +727,7 @@ public class GameUty
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  			AddFolderOrArchive("parts2");
 | 
	
		
			
				|  |  | -			string str4 = "■■■■■■■■■■■■■■■■■■■■";
 | 
	
		
			
				|  |  | -			int num10 = stopWatch.Stop();
 | 
	
		
			
				|  |  | -			Debug.Log(str4 + num10.ToString() + " ms");
 | 
	
		
			
				|  |  | +			Debug.Log("■■■■■■■■■■■■■■■■■■■■" + stopWatch.Stop().ToString() + " ms");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		GameUty.m_FileSystem.AddAutoPathForAllFolder();
 | 
	
		
			
				|  |  |  		if (Product.isPublic && !GameUty.m_FileSystem.IsExistentFile("21C399027026.dat"))
 | 
	
	
		
			
				|  | @@ -714,12 +738,11 @@ public class GameUty
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		GameUty.BgFiles = new Dictionary<string, AFileSystemBase>();
 | 
	
		
			
				|  |  |  		string[] list = GameUty.m_FileSystem.GetList("bg", AFileSystemBase.ListType.AllFile);
 | 
	
		
			
				|  |  | -		if (list != null && list.Length != 0)
 | 
	
		
			
				|  |  | +		if (list != null && 0 < list.Length)
 | 
	
		
			
				|  |  |  		{
 | 
	
		
			
				|  |  | -			string[] array = list;
 | 
	
		
			
				|  |  | -			for (int num10 = 0; num10 < array.Length; num10++)
 | 
	
		
			
				|  |  | +			foreach (string path in list)
 | 
	
		
			
				|  |  |  			{
 | 
	
		
			
				|  |  | -				string fileName = Path.GetFileName(array[num10]);
 | 
	
		
			
				|  |  | +				string fileName = Path.GetFileName(path);
 | 
	
		
			
				|  |  |  				if (!(Path.GetExtension(fileName) != ".asset_bg") && !GameUty.BgFiles.ContainsKey(fileName))
 | 
	
		
			
				|  |  |  				{
 | 
	
		
			
				|  |  |  					GameUty.BgFiles.Add(fileName, GameUty.m_FileSystem);
 | 
	
	
		
			
				|  | @@ -729,31 +752,30 @@ public class GameUty
 | 
	
		
			
				|  |  |  		if (Product.supportMultiLanguage)
 | 
	
		
			
				|  |  |  		{
 | 
	
		
			
				|  |  |  			list = GameUty.m_FileSystem.GetList("language", AFileSystemBase.ListType.AllFile);
 | 
	
		
			
				|  |  | -			if (list != null && list.Length != 0)
 | 
	
		
			
				|  |  | +			if (list != null && 0 < list.Length)
 | 
	
		
			
				|  |  |  			{
 | 
	
		
			
				|  |  | -				string[] array = list;
 | 
	
		
			
				|  |  | -				for (int num10 = 0; num10 < array.Length; num10++)
 | 
	
		
			
				|  |  | +				foreach (string path2 in list)
 | 
	
		
			
				|  |  |  				{
 | 
	
		
			
				|  |  | -					string fileName2 = Path.GetFileName(array[num10]);
 | 
	
		
			
				|  |  | +					string fileName2 = Path.GetFileName(path2);
 | 
	
		
			
				|  |  |  					if (!(Path.GetExtension(fileName2) != ".asset_language"))
 | 
	
		
			
				|  |  |  					{
 | 
	
		
			
				|  |  |  						using (AFileBase afileBase = GameUty.m_FileSystem.FileOpen(fileName2))
 | 
	
		
			
				|  |  |  						{
 | 
	
		
			
				|  |  |  							AssetBundle assetBundle = AssetBundle.LoadFromMemory(afileBase.ReadAll());
 | 
	
		
			
				|  |  | -							Component component = UnityEngine.Object.Instantiate<LanguageSource>(assetBundle.LoadAllAssets<GameObject>()[0].GetComponent<LanguageSource>());
 | 
	
		
			
				|  |  | +							LanguageSource languageSource = UnityEngine.Object.Instantiate<LanguageSource>(assetBundle.LoadAllAssets<GameObject>()[0].GetComponent<LanguageSource>());
 | 
	
		
			
				|  |  |  							if (GameMain.Instance.transform.Find("Language") == null)
 | 
	
		
			
				|  |  |  							{
 | 
	
		
			
				|  |  |  								new GameObject("Language").transform.SetParent(GameMain.Instance.transform);
 | 
	
		
			
				|  |  |  							}
 | 
	
		
			
				|  |  | -							component.transform.SetParent(GameMain.Instance.transform.Find("Language"));
 | 
	
		
			
				|  |  | +							languageSource.transform.SetParent(GameMain.Instance.transform.Find("Language"));
 | 
	
		
			
				|  |  |  							assetBundle.Unload(true);
 | 
	
		
			
				|  |  |  						}
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  | -			foreach (LanguageSource languageSource in LocalizationManager.Sources)
 | 
	
		
			
				|  |  | +			foreach (LanguageSource languageSource2 in LocalizationManager.Sources)
 | 
	
		
			
				|  |  |  			{
 | 
	
		
			
				|  |  | -				languageSource.LoadAllLanguages(false);
 | 
	
		
			
				|  |  | +				languageSource2.LoadAllLanguages(false);
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		if (Directory.Exists(text + "Mod"))
 | 
	
	
		
			
				|  | @@ -761,7 +783,8 @@ public class GameUty
 | 
	
		
			
				|  |  |  			GameUty.m_ModFileSystem = new FileSystemWindows();
 | 
	
		
			
				|  |  |  			GameUty.m_ModFileSystem.SetBaseDirectory(text);
 | 
	
		
			
				|  |  |  			GameUty.m_ModFileSystem.AddFolder("Mod");
 | 
	
		
			
				|  |  | -			foreach (string text29 in GameUty.m_ModFileSystem.GetList(string.Empty, AFileSystemBase.ListType.AllFolder))
 | 
	
		
			
				|  |  | +			string[] list2 = GameUty.m_ModFileSystem.GetList(string.Empty, AFileSystemBase.ListType.AllFolder);
 | 
	
		
			
				|  |  | +			foreach (string text29 in list2)
 | 
	
		
			
				|  |  |  			{
 | 
	
		
			
				|  |  |  				if (!GameUty.m_ModFileSystem.AddAutoPath(text29))
 | 
	
		
			
				|  |  |  				{
 | 
	
	
		
			
				|  | @@ -770,15 +793,16 @@ public class GameUty
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		string[] fileListAtExtension = GameUty.m_FileSystem.GetFileListAtExtension(".menu");
 | 
	
		
			
				|  |  | -		List<string> list2 = new List<string>();
 | 
	
		
			
				|  |  | -		foreach (string path in fileListAtExtension)
 | 
	
		
			
				|  |  | +		List<string> list3 = new List<string>();
 | 
	
		
			
				|  |  | +		foreach (string path3 in fileListAtExtension)
 | 
	
		
			
				|  |  |  		{
 | 
	
		
			
				|  |  | -			list2.Add(Path.GetFileName(path));
 | 
	
		
			
				|  |  | +			list3.Add(Path.GetFileName(path3));
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		GameUty.m_aryMenuFiles = list2.ToArray();
 | 
	
		
			
				|  |  | +		GameUty.m_aryMenuFiles = list3.ToArray();
 | 
	
		
			
				|  |  |  		if (GameUty.m_ModFileSystem != null)
 | 
	
		
			
				|  |  |  		{
 | 
	
		
			
				|  |  | -			GameUty.m_aryModOnlysMenuFiles = GameUty.m_ModFileSystem.GetFileListAtExtension(".menu");
 | 
	
		
			
				|  |  | +			string[] list4 = GameUty.m_ModFileSystem.GetList(string.Empty, AFileSystemBase.ListType.AllFile);
 | 
	
		
			
				|  |  | +			GameUty.m_aryModOnlysMenuFiles = Array.FindAll<string>(list4, (string i) => new Regex(".*\\.menu$").IsMatch(i));
 | 
	
		
			
				|  |  |  			GameUty.m_aryMenuFiles = GameUty.m_aryMenuFiles.Concat(GameUty.m_aryModOnlysMenuFiles).ToArray<string>();
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		if (GameUty.m_aryModOnlysMenuFiles != null && GameUty.m_aryModOnlysMenuFiles.Length != 0)
 | 
	
	
		
			
				|  | @@ -790,9 +814,9 @@ public class GameUty
 | 
	
		
			
				|  |  |  		{
 | 
	
		
			
				|  |  |  			string[] menuFiles = GameUty.MenuFiles;
 | 
	
		
			
				|  |  |  			GameUty.rid_menu_dic_ = new Dictionary<int, string>();
 | 
	
		
			
				|  |  | -			for (int num11 = 0; num11 < menuFiles.Length; num11++)
 | 
	
		
			
				|  |  | +			for (int num14 = 0; num14 < menuFiles.Length; num14++)
 | 
	
		
			
				|  |  |  			{
 | 
	
		
			
				|  |  | -				string fileName3 = Path.GetFileName(menuFiles[num11]);
 | 
	
		
			
				|  |  | +				string fileName3 = Path.GetFileName(menuFiles[num14]);
 | 
	
		
			
				|  |  |  				int hashCode = fileName3.ToLower().GetHashCode();
 | 
	
		
			
				|  |  |  				if (!GameUty.rid_menu_dic_.ContainsKey(hashCode))
 | 
	
		
			
				|  |  |  				{
 | 
	
	
		
			
				|  | @@ -1380,14 +1404,14 @@ public class GameUty
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	public static string GetBuildVersionText()
 | 
	
		
			
				|  |  |  	{
 | 
	
		
			
				|  |  | -		int num = 1430;
 | 
	
		
			
				|  |  | +		int num = 1440;
 | 
	
		
			
				|  |  |  		return (num >= 1000) ? ((float)num / 1000f).ToString("F2") : ((float)num / 100f).ToString("F2");
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	public static string GetGameVersionText()
 | 
	
		
			
				|  |  |  	{
 | 
	
		
			
				|  |  |  		string text = "COM3D2x64.exe";
 | 
	
		
			
				|  |  | -		int num = 1430;
 | 
	
		
			
				|  |  | +		int num = 1440;
 | 
	
		
			
				|  |  |  		string path = UTY.gameProjectPath + "\\update.lst";
 | 
	
		
			
				|  |  |  		string[] array = new string[0];
 | 
	
		
			
				|  |  |  		if (File.Exists(path))
 |