diff --git a/DotRecast.sln b/DotRecast.sln
index e07d120..7c242b7 100644
--- a/DotRecast.sln
+++ b/DotRecast.sln
@@ -35,6 +35,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotRecast.Detour.TileCache.
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotRecast.Recast.Demo", "src\DotRecast.Recast.Demo\DotRecast.Recast.Demo.csproj", "{023E1E6A-4895-4573-89AE-3D5D8E0B39C8}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{65754308-3C9B-4544-9D7B-F2C16A4E2486}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConvertVector", "tools\ConvertVector\ConvertVector.csproj", "{2E7E2C58-BCA3-4590-BA9D-0872DE546DBD}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -100,6 +104,10 @@ Global
{023E1E6A-4895-4573-89AE-3D5D8E0B39C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{023E1E6A-4895-4573-89AE-3D5D8E0B39C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{023E1E6A-4895-4573-89AE-3D5D8E0B39C8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2E7E2C58-BCA3-4590-BA9D-0872DE546DBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2E7E2C58-BCA3-4590-BA9D-0872DE546DBD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2E7E2C58-BCA3-4590-BA9D-0872DE546DBD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2E7E2C58-BCA3-4590-BA9D-0872DE546DBD}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{FFE40BBF-843B-41FA-8504-F4ABD166762E} = {8ED75CF7-A3D6-423D-8499-9316DD413DAD}
@@ -116,5 +124,6 @@ Global
{DEB16B90-CCD4-497E-A2E9-4CC66FD7EF47} = {8ED75CF7-A3D6-423D-8499-9316DD413DAD}
{3CAA7306-088E-4373-A406-99755CC2B605} = {A7CB8D8B-70DA-4567-8316-0659FCAE1C73}
{023E1E6A-4895-4573-89AE-3D5D8E0B39C8} = {8ED75CF7-A3D6-423D-8499-9316DD413DAD}
+ {2E7E2C58-BCA3-4590-BA9D-0872DE546DBD} = {65754308-3C9B-4544-9D7B-F2C16A4E2486}
EndGlobalSection
EndGlobal
diff --git a/tools/ConvertVector/ConvertVector.csproj b/tools/ConvertVector/ConvertVector.csproj
new file mode 100644
index 0000000..f02677b
--- /dev/null
+++ b/tools/ConvertVector/ConvertVector.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net7.0
+ enable
+ enable
+
+
+
diff --git a/tools/ConvertVector/Program.cs b/tools/ConvertVector/Program.cs
new file mode 100644
index 0000000..f0a46c8
--- /dev/null
+++ b/tools/ConvertVector/Program.cs
@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text.RegularExpressions;
+
+public static class Program
+{
+ private static List CreateLocations(string path)
+ {
+ List list = ((IEnumerable) File.ReadAllLines(path)).Where((Func) (line => line.Contains("error CS1061: "))).ToList();
+ List locations = new List();
+ foreach (string input in list)
+ {
+ string pattern = "([A-Za-z]:\\\\[^\\\\]+\\\\[^\\\\]+(?:\\\\[^\\\\]+)*\\\\[^\\\\]+\\.cs)\\((\\d+),(\\d+)\\)";
+ Match match = Regex.Match(input, pattern);
+ if (match.Success)
+ {
+ string str1 = match.Groups[1].Value;
+ string s1 = match.Groups[2].Value;
+ string s2 = match.Groups[3].Value;
+ string str2 = "";
+ if (input.Contains("'x'에 대한"))
+ str2 = "x";
+ if (input.Contains("'y'에 대한"))
+ str2 = "y";
+ if (input.Contains("'z'에 대한"))
+ str2 = "z";
+ FileLocation fileLocation = new FileLocation()
+ {
+ Path = str1,
+ Line = int.Parse(s1),
+ Column = int.Parse(s2),
+ Letter = str2
+ };
+ locations.Add(fileLocation);
+ }
+ }
+ return locations;
+ }
+
+ private static void Change(FileLocation location)
+ {
+ string[] contents = File.ReadAllLines(location.Path);
+ List list = ((IEnumerable) contents[location.Line - 1].ToCharArray()).Select((Func) (x => x.ToString() ?? "")).ToList();
+ list[location.Column - 2] = "[";
+ if (location.Letter == "x")
+ list[location.Column - 1] = "0]";
+ else if (location.Letter == "y")
+ list[location.Column - 1] = "1]";
+ else if (location.Letter == "z")
+ list[location.Column - 1] = "2]";
+ string str = string.Join("", (IEnumerable) list);
+ contents[location.Line - 1] = str;
+ //File.WriteAllLines(location.Path, contents);
+ }
+
+ public static void Main(string[] args)
+ {
+ var locations = Program.CreateLocations("../../../../../error.log");
+ foreach (FileLocation location in locations)
+ Program.Change(location);
+ }
+}
+
\ No newline at end of file