diff --git a/.gitignore b/.gitignore
index 5044dd27..7db00c38 100755
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,4 @@ obj
*.iobj
*.ipdb
/Source/Plugins/vpo_dll/Release
+/Source/Core/*.user
diff --git a/BuilderMono.sln b/BuilderMono.sln
new file mode 100644
index 00000000..c6ec7cd6
--- /dev/null
+++ b/BuilderMono.sln
@@ -0,0 +1,282 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29201.188
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Builder", "Source\Core\BuilderMono.csproj", "{818B3D10-F791-4C3F-9AF5-BB2D0079B63C}"
+ ProjectSection(ProjectDependencies) = postProject
+ {78938655-9807-485E-9D4B-46226DC7AD27} = {78938655-9807-485E-9D4B-46226DC7AD27}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BuilderModes", "Source\Plugins\BuilderModes\BuilderModes.csproj", "{B42D5AA0-F9A6-4234-9C4B-A05B11A64851}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BuilderEffects", "Source\Plugins\BuilderEffects\BuilderEffects.csproj", "{B859BE0F-A992-476D-A642-FA8EFE94AAA5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ColorPicker", "Source\Plugins\ColorPicker\ColorPicker.csproj", "{A4761900-0EA3-4FE4-A919-847FD5080EFC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TagExplorer", "Source\Plugins\TagExplorer\TagExplorer.csproj", "{BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommentsPanel", "Source\Plugins\CommentsPanel\CommentsPanel.csproj", "{58BD8A5B-1B48-435D-8473-A92F27D06C49}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NodesViewer", "Source\Plugins\NodesViewer\NodesViewer.csproj", "{9F244231-6A0C-42A6-87C5-ED9620DEE096}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TagRange", "Source\Plugins\TagRange\TagRange.csproj", "{F49EFF6D-51CB-4E49-8223-AAE653C5B62F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisplaneExplorer", "Source\Plugins\VisplaneExplorer\VisplaneExplorer.csproj", "{CF670175-7099-4090-A330-EE25C7230139}"
+ ProjectSection(ProjectDependencies) = postProject
+ {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE} = {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SoundPropagation", "Source\Plugins\SoundPropagationMode\SoundPropagation.csproj", "{F59B344C-DD50-4DB7-ADDD-56AAD66450AF}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StairSectorBuilder", "Source\Plugins\StairSectorBuilder\StairSectorBuilder.csproj", "{3F365121-906B-409D-BB1E-37E0A78056C2}"
+ ProjectSection(ProjectDependencies) = postProject
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C} = {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutomapMode", "Source\Plugins\AutomapMode\AutomapMode.csproj", "{B33F68D5-1335-400C-A1D7-7F5602A030EF}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug + Profiler|x64 = Debug + Profiler|x64
+ Debug + Profiler|x86 = Debug + Profiler|x86
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release + Profiler|x64 = Release + Profiler|x64
+ Release + Profiler|x86 = Release + Profiler|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug + Profiler|x64.ActiveCfg = Debug + Profiler|x64
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug + Profiler|x64.Build.0 = Debug + Profiler|x64
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug + Profiler|x86.ActiveCfg = Debug + Profiler|x86
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug + Profiler|x86.Build.0 = Debug + Profiler|x86
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug|x64.ActiveCfg = Debug|x64
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug|x64.Build.0 = Debug|x64
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug|x86.ActiveCfg = Debug|x86
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug|x86.Build.0 = Debug|x86
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release + Profiler|x64.ActiveCfg = Release + Profiler|x64
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release + Profiler|x64.Build.0 = Release + Profiler|x64
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release + Profiler|x86.ActiveCfg = Release + Profiler|x86
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release + Profiler|x86.Build.0 = Release + Profiler|x86
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release|x64.ActiveCfg = Release|x64
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release|x64.Build.0 = Release|x64
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release|x86.ActiveCfg = Release|x86
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release|x86.Build.0 = Release|x86
+ {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug + Profiler|x64.ActiveCfg = Debug + Profiler|x64
+ {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug + Profiler|x64.Build.0 = Debug + Profiler|x64
+ {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug + Profiler|x86.ActiveCfg = Debug + Profiler|x86
+ {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug + Profiler|x86.Build.0 = Debug + Profiler|x86
+ {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug|x64.ActiveCfg = Debug|x64
+ {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug|x64.Build.0 = Debug|x64
+ {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug|x86.ActiveCfg = Debug|x86
+ {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug|x86.Build.0 = Debug|x86
+ {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release + Profiler|x64.ActiveCfg = Release + Profiler|x64
+ {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release + Profiler|x64.Build.0 = Release + Profiler|x64
+ {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release + Profiler|x86.ActiveCfg = Release + Profiler|x86
+ {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release + Profiler|x86.Build.0 = Release + Profiler|x86
+ {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release|x64.ActiveCfg = Release|x64
+ {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release|x64.Build.0 = Release|x64
+ {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release|x86.ActiveCfg = Release|x86
+ {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release|x86.Build.0 = Release|x86
+ {B859BE0F-A992-476D-A642-FA8EFE94AAA5}.Debug + Profiler|x64.ActiveCfg = Debug + Profiler|x64
+ {B859BE0F-A992-476D-A642-FA8EFE94AAA5}.Debug + Profiler|x64.Build.0 = Debug + Profiler|x64
+ {B859BE0F-A992-476D-A642-FA8EFE94AAA5}.Debug + Profiler|x86.ActiveCfg = Debug + Profiler|x86
+ {B859BE0F-A992-476D-A642-FA8EFE94AAA5}.Debug + Profiler|x86.Build.0 = Debug + Profiler|x86
+ {B859BE0F-A992-476D-A642-FA8EFE94AAA5}.Debug|x64.ActiveCfg = Debug|x64
+ {B859BE0F-A992-476D-A642-FA8EFE94AAA5}.Debug|x64.Build.0 = Debug|x64
+ {B859BE0F-A992-476D-A642-FA8EFE94AAA5}.Debug|x86.ActiveCfg = Debug|x86
+ {B859BE0F-A992-476D-A642-FA8EFE94AAA5}.Debug|x86.Build.0 = Debug|x86
+ {B859BE0F-A992-476D-A642-FA8EFE94AAA5}.Release + Profiler|x64.ActiveCfg = Release + Profiler|x64
+ {B859BE0F-A992-476D-A642-FA8EFE94AAA5}.Release + Profiler|x64.Build.0 = Release + Profiler|x64
+ {B859BE0F-A992-476D-A642-FA8EFE94AAA5}.Release + Profiler|x86.ActiveCfg = Release + Profiler|x86
+ {B859BE0F-A992-476D-A642-FA8EFE94AAA5}.Release + Profiler|x86.Build.0 = Release + Profiler|x86
+ {B859BE0F-A992-476D-A642-FA8EFE94AAA5}.Release|x64.ActiveCfg = Release|x64
+ {B859BE0F-A992-476D-A642-FA8EFE94AAA5}.Release|x64.Build.0 = Release|x64
+ {B859BE0F-A992-476D-A642-FA8EFE94AAA5}.Release|x86.ActiveCfg = Release|x86
+ {B859BE0F-A992-476D-A642-FA8EFE94AAA5}.Release|x86.Build.0 = Release|x86
+ {A4761900-0EA3-4FE4-A919-847FD5080EFC}.Debug + Profiler|x64.ActiveCfg = Debug + Profiler|x64
+ {A4761900-0EA3-4FE4-A919-847FD5080EFC}.Debug + Profiler|x64.Build.0 = Debug + Profiler|x64
+ {A4761900-0EA3-4FE4-A919-847FD5080EFC}.Debug + Profiler|x86.ActiveCfg = Debug + Profiler|x86
+ {A4761900-0EA3-4FE4-A919-847FD5080EFC}.Debug + Profiler|x86.Build.0 = Debug + Profiler|x86
+ {A4761900-0EA3-4FE4-A919-847FD5080EFC}.Debug|x64.ActiveCfg = Debug|x64
+ {A4761900-0EA3-4FE4-A919-847FD5080EFC}.Debug|x64.Build.0 = Debug|x64
+ {A4761900-0EA3-4FE4-A919-847FD5080EFC}.Debug|x86.ActiveCfg = Debug|x86
+ {A4761900-0EA3-4FE4-A919-847FD5080EFC}.Debug|x86.Build.0 = Debug|x86
+ {A4761900-0EA3-4FE4-A919-847FD5080EFC}.Release + Profiler|x64.ActiveCfg = Release + Profiler|x64
+ {A4761900-0EA3-4FE4-A919-847FD5080EFC}.Release + Profiler|x64.Build.0 = Release + Profiler|x64
+ {A4761900-0EA3-4FE4-A919-847FD5080EFC}.Release + Profiler|x86.ActiveCfg = Release + Profiler|x86
+ {A4761900-0EA3-4FE4-A919-847FD5080EFC}.Release + Profiler|x86.Build.0 = Release + Profiler|x86
+ {A4761900-0EA3-4FE4-A919-847FD5080EFC}.Release|x64.ActiveCfg = Release|x64
+ {A4761900-0EA3-4FE4-A919-847FD5080EFC}.Release|x64.Build.0 = Release|x64
+ {A4761900-0EA3-4FE4-A919-847FD5080EFC}.Release|x86.ActiveCfg = Release|x86
+ {A4761900-0EA3-4FE4-A919-847FD5080EFC}.Release|x86.Build.0 = Release|x86
+ {BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Debug + Profiler|x64.ActiveCfg = Debug + Profiler|x64
+ {BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Debug + Profiler|x64.Build.0 = Debug + Profiler|x64
+ {BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Debug + Profiler|x86.ActiveCfg = Debug + Profiler|x86
+ {BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Debug + Profiler|x86.Build.0 = Debug + Profiler|x86
+ {BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Debug|x64.ActiveCfg = Debug|x64
+ {BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Debug|x64.Build.0 = Debug|x64
+ {BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Debug|x86.ActiveCfg = Debug|x86
+ {BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Debug|x86.Build.0 = Debug|x86
+ {BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Release + Profiler|x64.ActiveCfg = Release + Profiler|x64
+ {BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Release + Profiler|x64.Build.0 = Release + Profiler|x64
+ {BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Release + Profiler|x86.ActiveCfg = Release + Profiler|x86
+ {BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Release + Profiler|x86.Build.0 = Release + Profiler|x86
+ {BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Release|x64.ActiveCfg = Release|x64
+ {BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Release|x64.Build.0 = Release|x64
+ {BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Release|x86.ActiveCfg = Release|x86
+ {BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Release|x86.Build.0 = Release|x86
+ {58BD8A5B-1B48-435D-8473-A92F27D06C49}.Debug + Profiler|x64.ActiveCfg = Debug + Profiler|x64
+ {58BD8A5B-1B48-435D-8473-A92F27D06C49}.Debug + Profiler|x64.Build.0 = Debug + Profiler|x64
+ {58BD8A5B-1B48-435D-8473-A92F27D06C49}.Debug + Profiler|x86.ActiveCfg = Debug + Profiler|x86
+ {58BD8A5B-1B48-435D-8473-A92F27D06C49}.Debug + Profiler|x86.Build.0 = Debug + Profiler|x86
+ {58BD8A5B-1B48-435D-8473-A92F27D06C49}.Debug|x64.ActiveCfg = Debug|x64
+ {58BD8A5B-1B48-435D-8473-A92F27D06C49}.Debug|x64.Build.0 = Debug|x64
+ {58BD8A5B-1B48-435D-8473-A92F27D06C49}.Debug|x86.ActiveCfg = Debug|x86
+ {58BD8A5B-1B48-435D-8473-A92F27D06C49}.Debug|x86.Build.0 = Debug|x86
+ {58BD8A5B-1B48-435D-8473-A92F27D06C49}.Release + Profiler|x64.ActiveCfg = Release + Profiler|x64
+ {58BD8A5B-1B48-435D-8473-A92F27D06C49}.Release + Profiler|x64.Build.0 = Release + Profiler|x64
+ {58BD8A5B-1B48-435D-8473-A92F27D06C49}.Release + Profiler|x86.ActiveCfg = Release + Profiler|x86
+ {58BD8A5B-1B48-435D-8473-A92F27D06C49}.Release + Profiler|x86.Build.0 = Release + Profiler|x86
+ {58BD8A5B-1B48-435D-8473-A92F27D06C49}.Release|x64.ActiveCfg = Release|x64
+ {58BD8A5B-1B48-435D-8473-A92F27D06C49}.Release|x64.Build.0 = Release|x64
+ {58BD8A5B-1B48-435D-8473-A92F27D06C49}.Release|x86.ActiveCfg = Release|x86
+ {58BD8A5B-1B48-435D-8473-A92F27D06C49}.Release|x86.Build.0 = Release|x86
+ {9F244231-6A0C-42A6-87C5-ED9620DEE096}.Debug + Profiler|x64.ActiveCfg = Debug + Profiler|x64
+ {9F244231-6A0C-42A6-87C5-ED9620DEE096}.Debug + Profiler|x64.Build.0 = Debug + Profiler|x64
+ {9F244231-6A0C-42A6-87C5-ED9620DEE096}.Debug + Profiler|x86.ActiveCfg = Debug + Profiler|x86
+ {9F244231-6A0C-42A6-87C5-ED9620DEE096}.Debug + Profiler|x86.Build.0 = Debug + Profiler|x86
+ {9F244231-6A0C-42A6-87C5-ED9620DEE096}.Debug|x64.ActiveCfg = Debug|x64
+ {9F244231-6A0C-42A6-87C5-ED9620DEE096}.Debug|x64.Build.0 = Debug|x64
+ {9F244231-6A0C-42A6-87C5-ED9620DEE096}.Debug|x86.ActiveCfg = Debug|x86
+ {9F244231-6A0C-42A6-87C5-ED9620DEE096}.Debug|x86.Build.0 = Debug|x86
+ {9F244231-6A0C-42A6-87C5-ED9620DEE096}.Release + Profiler|x64.ActiveCfg = Release + Profiler|x64
+ {9F244231-6A0C-42A6-87C5-ED9620DEE096}.Release + Profiler|x64.Build.0 = Release + Profiler|x64
+ {9F244231-6A0C-42A6-87C5-ED9620DEE096}.Release + Profiler|x86.ActiveCfg = Release + Profiler|x86
+ {9F244231-6A0C-42A6-87C5-ED9620DEE096}.Release + Profiler|x86.Build.0 = Release + Profiler|x86
+ {9F244231-6A0C-42A6-87C5-ED9620DEE096}.Release|x64.ActiveCfg = Release|x64
+ {9F244231-6A0C-42A6-87C5-ED9620DEE096}.Release|x64.Build.0 = Release|x64
+ {9F244231-6A0C-42A6-87C5-ED9620DEE096}.Release|x86.ActiveCfg = Release|x86
+ {9F244231-6A0C-42A6-87C5-ED9620DEE096}.Release|x86.Build.0 = Release|x86
+ {F49EFF6D-51CB-4E49-8223-AAE653C5B62F}.Debug + Profiler|x64.ActiveCfg = Debug + Profiler|x64
+ {F49EFF6D-51CB-4E49-8223-AAE653C5B62F}.Debug + Profiler|x64.Build.0 = Debug + Profiler|x64
+ {F49EFF6D-51CB-4E49-8223-AAE653C5B62F}.Debug + Profiler|x86.ActiveCfg = Debug + Profiler|x86
+ {F49EFF6D-51CB-4E49-8223-AAE653C5B62F}.Debug + Profiler|x86.Build.0 = Debug + Profiler|x86
+ {F49EFF6D-51CB-4E49-8223-AAE653C5B62F}.Debug|x64.ActiveCfg = Debug|x64
+ {F49EFF6D-51CB-4E49-8223-AAE653C5B62F}.Debug|x64.Build.0 = Debug|x64
+ {F49EFF6D-51CB-4E49-8223-AAE653C5B62F}.Debug|x86.ActiveCfg = Debug|x86
+ {F49EFF6D-51CB-4E49-8223-AAE653C5B62F}.Debug|x86.Build.0 = Debug|x86
+ {F49EFF6D-51CB-4E49-8223-AAE653C5B62F}.Release + Profiler|x64.ActiveCfg = Release + Profiler|x64
+ {F49EFF6D-51CB-4E49-8223-AAE653C5B62F}.Release + Profiler|x64.Build.0 = Release + Profiler|x64
+ {F49EFF6D-51CB-4E49-8223-AAE653C5B62F}.Release + Profiler|x86.ActiveCfg = Release + Profiler|x86
+ {F49EFF6D-51CB-4E49-8223-AAE653C5B62F}.Release + Profiler|x86.Build.0 = Release + Profiler|x86
+ {F49EFF6D-51CB-4E49-8223-AAE653C5B62F}.Release|x64.ActiveCfg = Release|x64
+ {F49EFF6D-51CB-4E49-8223-AAE653C5B62F}.Release|x64.Build.0 = Release|x64
+ {F49EFF6D-51CB-4E49-8223-AAE653C5B62F}.Release|x86.ActiveCfg = Release|x86
+ {F49EFF6D-51CB-4E49-8223-AAE653C5B62F}.Release|x86.Build.0 = Release|x86
+ {CF670175-7099-4090-A330-EE25C7230139}.Debug + Profiler|x64.ActiveCfg = Debug + Profiler|x64
+ {CF670175-7099-4090-A330-EE25C7230139}.Debug + Profiler|x64.Build.0 = Debug + Profiler|x64
+ {CF670175-7099-4090-A330-EE25C7230139}.Debug + Profiler|x86.ActiveCfg = Debug + Profiler|x86
+ {CF670175-7099-4090-A330-EE25C7230139}.Debug + Profiler|x86.Build.0 = Debug + Profiler|x86
+ {CF670175-7099-4090-A330-EE25C7230139}.Debug|x64.ActiveCfg = Debug|x64
+ {CF670175-7099-4090-A330-EE25C7230139}.Debug|x64.Build.0 = Debug|x64
+ {CF670175-7099-4090-A330-EE25C7230139}.Debug|x86.ActiveCfg = Debug|x86
+ {CF670175-7099-4090-A330-EE25C7230139}.Debug|x86.Build.0 = Debug|x86
+ {CF670175-7099-4090-A330-EE25C7230139}.Release + Profiler|x64.ActiveCfg = Release + Profiler|x64
+ {CF670175-7099-4090-A330-EE25C7230139}.Release + Profiler|x64.Build.0 = Release + Profiler|x64
+ {CF670175-7099-4090-A330-EE25C7230139}.Release + Profiler|x86.ActiveCfg = Release + Profiler|x86
+ {CF670175-7099-4090-A330-EE25C7230139}.Release + Profiler|x86.Build.0 = Release + Profiler|x86
+ {CF670175-7099-4090-A330-EE25C7230139}.Release|x64.ActiveCfg = Release|x64
+ {CF670175-7099-4090-A330-EE25C7230139}.Release|x64.Build.0 = Release|x64
+ {CF670175-7099-4090-A330-EE25C7230139}.Release|x86.ActiveCfg = Release|x86
+ {CF670175-7099-4090-A330-EE25C7230139}.Release|x86.Build.0 = Release|x86
+ {F59B344C-DD50-4DB7-ADDD-56AAD66450AF}.Debug + Profiler|x64.ActiveCfg = Debug + Profiler|x64
+ {F59B344C-DD50-4DB7-ADDD-56AAD66450AF}.Debug + Profiler|x64.Build.0 = Debug + Profiler|x64
+ {F59B344C-DD50-4DB7-ADDD-56AAD66450AF}.Debug + Profiler|x86.ActiveCfg = Debug + Profiler|x86
+ {F59B344C-DD50-4DB7-ADDD-56AAD66450AF}.Debug + Profiler|x86.Build.0 = Debug + Profiler|x86
+ {F59B344C-DD50-4DB7-ADDD-56AAD66450AF}.Debug|x64.ActiveCfg = Debug|x64
+ {F59B344C-DD50-4DB7-ADDD-56AAD66450AF}.Debug|x64.Build.0 = Debug|x64
+ {F59B344C-DD50-4DB7-ADDD-56AAD66450AF}.Debug|x86.ActiveCfg = Debug|x86
+ {F59B344C-DD50-4DB7-ADDD-56AAD66450AF}.Debug|x86.Build.0 = Debug|x86
+ {F59B344C-DD50-4DB7-ADDD-56AAD66450AF}.Release + Profiler|x64.ActiveCfg = Release + Profiler|x64
+ {F59B344C-DD50-4DB7-ADDD-56AAD66450AF}.Release + Profiler|x64.Build.0 = Release + Profiler|x64
+ {F59B344C-DD50-4DB7-ADDD-56AAD66450AF}.Release + Profiler|x86.ActiveCfg = Release + Profiler|x86
+ {F59B344C-DD50-4DB7-ADDD-56AAD66450AF}.Release + Profiler|x86.Build.0 = Release + Profiler|x86
+ {F59B344C-DD50-4DB7-ADDD-56AAD66450AF}.Release|x64.ActiveCfg = Release|x64
+ {F59B344C-DD50-4DB7-ADDD-56AAD66450AF}.Release|x64.Build.0 = Release|x64
+ {F59B344C-DD50-4DB7-ADDD-56AAD66450AF}.Release|x86.ActiveCfg = Release|x86
+ {F59B344C-DD50-4DB7-ADDD-56AAD66450AF}.Release|x86.Build.0 = Release|x86
+ {3F365121-906B-409D-BB1E-37E0A78056C2}.Debug + Profiler|x64.ActiveCfg = Debug + Profiler|x64
+ {3F365121-906B-409D-BB1E-37E0A78056C2}.Debug + Profiler|x64.Build.0 = Debug + Profiler|x64
+ {3F365121-906B-409D-BB1E-37E0A78056C2}.Debug + Profiler|x86.ActiveCfg = Debug + Profiler|x86
+ {3F365121-906B-409D-BB1E-37E0A78056C2}.Debug + Profiler|x86.Build.0 = Debug + Profiler|x86
+ {3F365121-906B-409D-BB1E-37E0A78056C2}.Debug|x64.ActiveCfg = Debug|x64
+ {3F365121-906B-409D-BB1E-37E0A78056C2}.Debug|x64.Build.0 = Debug|x64
+ {3F365121-906B-409D-BB1E-37E0A78056C2}.Debug|x86.ActiveCfg = Debug|x86
+ {3F365121-906B-409D-BB1E-37E0A78056C2}.Debug|x86.Build.0 = Debug|x86
+ {3F365121-906B-409D-BB1E-37E0A78056C2}.Release + Profiler|x64.ActiveCfg = Release + Profiler|x64
+ {3F365121-906B-409D-BB1E-37E0A78056C2}.Release + Profiler|x64.Build.0 = Release + Profiler|x64
+ {3F365121-906B-409D-BB1E-37E0A78056C2}.Release + Profiler|x86.ActiveCfg = Release + Profiler|x86
+ {3F365121-906B-409D-BB1E-37E0A78056C2}.Release + Profiler|x86.Build.0 = Release + Profiler|x86
+ {3F365121-906B-409D-BB1E-37E0A78056C2}.Release|x64.ActiveCfg = Release|x64
+ {3F365121-906B-409D-BB1E-37E0A78056C2}.Release|x64.Build.0 = Release|x64
+ {3F365121-906B-409D-BB1E-37E0A78056C2}.Release|x86.ActiveCfg = Release|x86
+ {3F365121-906B-409D-BB1E-37E0A78056C2}.Release|x86.Build.0 = Release|x86
+ {B33F68D5-1335-400C-A1D7-7F5602A030EF}.Debug + Profiler|x64.ActiveCfg = Debug|x64
+ {B33F68D5-1335-400C-A1D7-7F5602A030EF}.Debug + Profiler|x64.Build.0 = Debug|x64
+ {B33F68D5-1335-400C-A1D7-7F5602A030EF}.Debug + Profiler|x86.ActiveCfg = Debug|x86
+ {B33F68D5-1335-400C-A1D7-7F5602A030EF}.Debug + Profiler|x86.Build.0 = Debug|x86
+ {B33F68D5-1335-400C-A1D7-7F5602A030EF}.Debug|x64.ActiveCfg = Debug|x64
+ {B33F68D5-1335-400C-A1D7-7F5602A030EF}.Debug|x64.Build.0 = Debug|x64
+ {B33F68D5-1335-400C-A1D7-7F5602A030EF}.Debug|x86.ActiveCfg = Debug|x86
+ {B33F68D5-1335-400C-A1D7-7F5602A030EF}.Debug|x86.Build.0 = Debug|x86
+ {B33F68D5-1335-400C-A1D7-7F5602A030EF}.Release + Profiler|x64.ActiveCfg = Release|x64
+ {B33F68D5-1335-400C-A1D7-7F5602A030EF}.Release + Profiler|x64.Build.0 = Release|x64
+ {B33F68D5-1335-400C-A1D7-7F5602A030EF}.Release + Profiler|x86.ActiveCfg = Release|x86
+ {B33F68D5-1335-400C-A1D7-7F5602A030EF}.Release + Profiler|x86.Build.0 = Release|x86
+ {B33F68D5-1335-400C-A1D7-7F5602A030EF}.Release|x64.ActiveCfg = Release|x64
+ {B33F68D5-1335-400C-A1D7-7F5602A030EF}.Release|x64.Build.0 = Release|x64
+ {B33F68D5-1335-400C-A1D7-7F5602A030EF}.Release|x86.ActiveCfg = Release|x86
+ {B33F68D5-1335-400C-A1D7-7F5602A030EF}.Release|x86.Build.0 = Release|x86
+ {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE}.Debug + Profiler|x64.ActiveCfg = Debug|x64
+ {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE}.Debug + Profiler|x64.Build.0 = Debug|x64
+ {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE}.Debug + Profiler|x86.ActiveCfg = Debug|Win32
+ {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE}.Debug + Profiler|x86.Build.0 = Debug|Win32
+ {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE}.Debug|x64.ActiveCfg = Debug|x64
+ {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE}.Debug|x64.Build.0 = Debug|x64
+ {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE}.Debug|x86.ActiveCfg = Debug|Win32
+ {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE}.Debug|x86.Build.0 = Debug|Win32
+ {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE}.Release + Profiler|x64.ActiveCfg = Release|Win32
+ {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE}.Release + Profiler|x64.Build.0 = Release|Win32
+ {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE}.Release + Profiler|x86.ActiveCfg = Release|Win32
+ {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE}.Release + Profiler|x86.Build.0 = Release|Win32
+ {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE}.Release|x64.ActiveCfg = Release|x64
+ {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE}.Release|x64.Build.0 = Release|x64
+ {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE}.Release|x86.ActiveCfg = Release|Win32
+ {29C8D76F-DE3D-482D-AD7D-B86BBD0824DE}.Release|x86.Build.0 = Release|Win32
+ {78938655-9807-485E-9D4B-46226DC7AD27}.Debug + Profiler|x64.ActiveCfg = Debug|x64
+ {78938655-9807-485E-9D4B-46226DC7AD27}.Debug + Profiler|x64.Build.0 = Debug|x64
+ {78938655-9807-485E-9D4B-46226DC7AD27}.Debug + Profiler|x86.ActiveCfg = Debug|Win32
+ {78938655-9807-485E-9D4B-46226DC7AD27}.Debug + Profiler|x86.Build.0 = Debug|Win32
+ {78938655-9807-485E-9D4B-46226DC7AD27}.Debug|x64.ActiveCfg = Debug|x64
+ {78938655-9807-485E-9D4B-46226DC7AD27}.Debug|x64.Build.0 = Debug|x64
+ {78938655-9807-485E-9D4B-46226DC7AD27}.Debug|x86.ActiveCfg = Debug|Win32
+ {78938655-9807-485E-9D4B-46226DC7AD27}.Debug|x86.Build.0 = Debug|Win32
+ {78938655-9807-485E-9D4B-46226DC7AD27}.Release + Profiler|x64.ActiveCfg = Release|Win32
+ {78938655-9807-485E-9D4B-46226DC7AD27}.Release + Profiler|x64.Build.0 = Release|Win32
+ {78938655-9807-485E-9D4B-46226DC7AD27}.Release + Profiler|x86.ActiveCfg = Release|Win32
+ {78938655-9807-485E-9D4B-46226DC7AD27}.Release + Profiler|x86.Build.0 = Release|Win32
+ {78938655-9807-485E-9D4B-46226DC7AD27}.Release|x64.ActiveCfg = Release|x64
+ {78938655-9807-485E-9D4B-46226DC7AD27}.Release|x64.Build.0 = Release|x64
+ {78938655-9807-485E-9D4B-46226DC7AD27}.Release|x86.ActiveCfg = Release|Win32
+ {78938655-9807-485E-9D4B-46226DC7AD27}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {3B8A71AA-A484-4F99-AE33-F11E20476E10}
+ EndGlobalSection
+EndGlobal
diff --git a/Source/Core/BuilderMono.csproj b/Source/Core/BuilderMono.csproj
new file mode 100644
index 00000000..88036032
--- /dev/null
+++ b/Source/Core/BuilderMono.csproj
@@ -0,0 +1,1485 @@
+
+
+
+ Debug
+ AnyCPU
+ 9.0.30729
+ 2.0
+ {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}
+ WinExe
+ Properties
+ CodeImp.DoomBuilder
+ Builder
+ CodeImp.DoomBuilder.General
+ Resources\GZDB2.ico
+
+
+ OnBuildSuccess
+
+
+ 3.5
+
+
+ v4.7.2
+ app.manifest
+
+
+
+ true
+ ..\..\Build\
+ TRACE;DEBUG;NO_SCINTILLA NO_FORMS_DESIGN NO_DEVIL
+ true
+ full
+ x86
+ false
+ prompt
+
+
+ 4
+ false
+
+
+ ..\..\Build\
+ true
+ true
+ pdbonly
+ x86
+ false
+ prompt
+
+
+ NO_SCINTILLA NO_FORMS_DESIGN NO_DEVIL
+ 4
+ true
+ 1591
+ false
+
+
+ true
+ ..\..\Build\
+ TRACE;DEBUG;PROFILE NO_SCINTILLA NO_FORMS_DESIGN NO_DEVIL
+ true
+
+
+ 3
+ full
+ x86
+ false
+ prompt
+ false
+
+
+ true
+ ..\..\Build\
+ true
+ ..\..\Build\Builder.xml
+ true
+ 3
+ pdbonly
+ x86
+ false
+ prompt
+ TRACE;PROFILE NO_SCINTILLA NO_FORMS_DESIGN NO_DEVIL
+ false
+
+
+ x64
+ ..\..\Build\
+
+
+ false
+ true
+ TRACE;DEBUG;NO_SCINTILLA NO_FORMS_DESIGN NO_DEVIL
+
+
+ x64
+ ..\..\Build\
+ false
+ true
+ true
+ TRACE;NO_SCINTILLA NO_FORMS_DESIGN NO_DEVIL
+
+
+ x64
+ ..\..\Build\
+ false
+ true
+ TRACE;DEBUG;PROFILE NO_SCINTILLA NO_FORMS_DESIGN NO_DEVIL
+
+
+ x64
+ ..\..\Build\
+ false
+ true
+ true
+ PROFILE NO_SCINTILLA NO_FORMS_DESIGN NO_DEVIL
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UserControl
+
+
+ ArgumentBox.cs
+
+
+
+ Component
+
+
+ Component
+
+
+ Component
+
+
+ Component
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UserControl
+
+
+ PairedFloatControl.cs
+
+
+ UserControl
+
+
+ True
+ True
+ Settings.settings
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ ThingStatisticsForm.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ AboutForm.cs
+
+
+ Form
+
+
+ ActionBrowserForm.cs
+
+
+ UserControl
+
+
+ ActionSelectorControl.cs
+
+
+ UserControl
+
+
+ AngleControl.cs
+
+
+ Component
+
+
+ UserControl
+
+
+ CheckboxArrayControl.cs
+
+
+ UserControl
+
+
+ ButtonsNumericTextbox.cs
+
+
+ UserControl
+
+
+ ColorControl.cs
+
+
+ Form
+
+
+ BitFlagsForm.cs
+
+
+ Form
+
+
+ ConfigForm.cs
+
+
+ Form
+
+
+ CustomFieldsForm.cs
+
+
+ Form
+
+
+ EffectBrowserForm.cs
+
+
+
+ UserControl
+
+
+ FieldsEditorControl.cs
+
+
+ Form
+
+
+ UserControl
+
+
+ Form
+
+
+ GridSetupForm.cs
+
+
+ UserControl
+
+
+ ImageBrowserControl.cs
+
+
+
+ UserControl
+
+
+ ImageSelectorControl.cs
+
+
+
+ Form
+
+
+ LinedefEditForm.cs
+
+
+ UserControl
+
+
+ LinedefInfoPanel.cs
+
+
+ Form
+
+
+ MapOptionsForm.cs
+
+
+ Component
+
+
+
+ Form
+
+
+ OpenMapOptionsForm.cs
+
+
+ Component
+
+
+ Form
+
+
+ PreferencesForm.cs
+
+
+ Component
+
+
+ Component
+
+
+ UserControl
+
+
+ ResourceListEditor.cs
+
+
+ Form
+
+
+ ResourceOptionsForm.cs
+
+
+ Form
+
+
+ ScriptEditorForm.cs
+
+
+ Form
+
+
+ SectorEditForm.cs
+
+
+ UserControl
+
+
+ SectorInfoPanel.cs
+
+
+ Form
+
+
+ TextEditForm.cs
+
+
+ Form
+
+
+ TextureBrowserForm.cs
+
+
+ UserControl
+
+
+ Form
+
+
+ TextureSetForm.cs
+
+
+ Form
+
+
+ ThingEditForm.cs
+
+
+ UserControl
+
+
+ ThingInfoPanel.cs
+
+
+ Form
+
+
+ ThingsFiltersForm.cs
+
+
+ UserControl
+
+
+ VertexInfoPanel.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ MainForm.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ False
+ ..\..\Build\SharpCompress.dll
+
+
+
+ 3.5
+
+
+
+
+
+
+
+
+ False
+
+
+
+
+ PairedFloatControl.cs
+
+
+ ThingStatisticsForm.cs
+
+
+ Designer
+ AboutForm.cs
+
+
+ Designer
+ MainForm.cs
+
+
+ Designer
+ MapOptionsForm.cs
+
+
+ Designer
+ OpenMapOptionsForm.cs
+
+
+ Designer
+ ResourceOptionsForm.cs
+
+
+ Designer
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Designer
+ ActionBrowserForm.cs
+
+
+ Designer
+ ActionSelectorControl.cs
+
+
+ Designer
+ CheckboxArrayControl.cs
+
+
+ Designer
+ ColorControl.cs
+
+
+ Designer
+ ConfigForm.cs
+
+
+ EffectBrowserForm.cs
+ Designer
+
+
+ Designer
+ FieldsEditorControl.cs
+
+
+ Designer
+ DelayedForm.cs
+
+
+ Designer
+ GridSetupForm.cs
+
+
+ Designer
+ ImageBrowserControl.cs
+
+
+ Designer
+ ImageSelectorControl.cs
+
+
+ Designer
+ LinedefEditForm.cs
+
+
+ Designer
+ LinedefInfoPanel.cs
+
+
+ Designer
+ PreferencesForm.cs
+
+
+ Designer
+ ResourceListEditor.cs
+
+
+ Designer
+ SectorEditForm.cs
+
+
+ Designer
+ SectorInfoPanel.cs
+
+
+ Designer
+ TextureBrowserForm.cs
+
+
+ Designer
+ ThingInfoPanel.cs
+
+
+ Designer
+ VertexInfoPanel.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FindUsagesControl.cs
+
+
+ ScriptResourcesControl.cs
+
+
+
+
+
+
+
+
+
+
+
+ Component
+
+
+ UserControl
+
+
+ FindUsagesControl.cs
+
+
+ Component
+
+
+
+
+ Component
+
+
+ UserControl
+
+
+ ScriptResourcesControl.cs
+
+
+ Component
+
+
+
+
+
+
+
+
+
+ UserControl
+
+
+ ActionSpecialHelpButton.cs
+
+
+ UserControl
+
+
+ ArgumentsControl.cs
+
+
+ Component
+
+
+
+ Component
+
+
+ Component
+
+
+ UserControl
+
+
+ CommentEditor.cs
+
+
+ UserControl
+
+
+ DebugConsole.cs
+
+
+
+ UserControl
+
+
+ DockersControl.cs
+
+
+ Component
+
+
+ Component
+
+
+ UserControl
+
+
+ HintsPanel.cs
+
+
+ UserControl
+
+
+ PasteOptionsControl.cs
+
+
+ UserControl
+
+
+ SectorSlopeControl.cs
+
+
+ UserControl
+
+
+ StatisticsControl.cs
+
+
+ UserControl
+
+
+ ThingBrowserControl.cs
+
+
+ Component
+
+
+ Component
+
+
+ Component
+
+
+ Component
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UserControl
+
+
+ AngleControlEx.cs
+
+
+ UserControl
+
+
+ ColorFieldsControl.cs
+
+
+ UserControl
+
+
+ TagsSelector.cs
+
+
+ Component
+
+
+ Component
+
+
+ UserControl
+
+
+ PairedFieldsControl.cs
+
+
+ UserControl
+
+
+ PairedIntControl.cs
+
+
+ UserControl
+
+
+ TagSelector.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ ScriptGoToLineForm.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ ExceptionDialog.cs
+
+
+ Form
+
+
+ TagStatisticsForm.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ BitFlagsAndOptionsForm.cs
+
+
+ Form
+
+
+ CenterOnCoordinatesForm.cs
+
+
+ Form
+
+
+ ChangeMapForm.cs
+
+
+ Form
+
+
+ ErrorsForm.cs
+
+
+
+ Form
+
+
+ FlagsForm.cs
+
+
+ Form
+
+
+ LinedefColorPresetsForm.cs
+
+
+ Form
+
+
+ LinedefEditFormUDMF.cs
+
+
+
+ Form
+
+
+ PasteOptionsForm.cs
+
+
+
+ Form
+
+
+ ScriptFindReplaceForm.cs
+
+
+ Form
+
+
+ SectorEditFormUDMF.cs
+
+
+
+
+ Form
+
+
+ ThingBrowserForm.cs
+
+
+ Form
+
+
+ ThingEditFormUDMF.cs
+
+
+
+ Form
+
+
+ UpdateForm.cs
+
+
+ Form
+
+
+ VertexEditForm.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ActionSpecialHelpButton.cs
+
+
+ ArgumentsControl.cs
+
+
+ CommentEditor.cs
+
+
+ DebugConsole.cs
+
+
+ DockersControl.cs
+
+
+ HintsPanel.cs
+
+
+ Designer
+ PasteOptionsControl.cs
+
+
+ SectorSlopeControl.cs
+
+
+ StatisticsControl.cs
+
+
+ Designer
+ ThingBrowserControl.cs
+
+
+ AngleControlEx.cs
+
+
+ ColorFieldsControl.cs
+
+
+ TagsSelector.cs
+
+
+ PairedFieldsControl.cs
+
+
+ PairedIntControl.cs
+
+
+ TagSelector.cs
+
+
+ ExceptionDialog.cs
+
+
+ ScriptGoToLineForm.cs
+
+
+ TagStatisticsForm.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ AngleForm.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Designer
+ AngleControl.cs
+
+
+ Designer
+ ArgumentBox.cs
+
+
+ Designer
+ ButtonsNumericTextbox.cs
+
+
+ Designer
+ AngleForm.cs
+
+
+ BitFlagsAndOptionsForm.cs
+
+
+ Designer
+ BitFlagsForm.cs
+
+
+ CenterOnCoordinatesForm.cs
+
+
+ ChangeMapForm.cs
+
+
+ Designer
+ CustomFieldsForm.cs
+
+
+ Designer
+ ErrorsForm.cs
+
+
+ FlagsForm.cs
+
+
+ LinedefColorPresetsForm.cs
+
+
+ LinedefEditFormUDMF.cs
+
+
+ PasteOptionsForm.cs
+
+
+ Designer
+ ScriptEditorForm.cs
+
+
+ Designer
+ ScriptFindReplaceForm.cs
+
+
+ SectorEditFormUDMF.cs
+
+
+ Designer
+ TextEditForm.cs
+
+
+ Designer
+ TextureSetForm.cs
+
+
+ Designer
+ ThingBrowserForm.cs
+
+
+ Designer
+ ThingEditForm.cs
+
+
+ ThingEditFormUDMF.cs
+
+
+ Designer
+ ThingsFiltersForm.cs
+
+
+
+ UpdateForm.cs
+
+
+ Designer
+ VertexEditForm.cs
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Source/Core/General/General.cs b/Source/Core/General/General.cs
index 62cb7bfa..61cb36f5 100755
--- a/Source/Core/General/General.cs
+++ b/Source/Core/General/General.cs
@@ -47,12 +47,14 @@ namespace CodeImp.DoomBuilder
{
public static class General
{
- #region ================== API Declarations
+ #region ================== API Declarations
- [DllImport("devil.dll")]
+#if !NO_DEVIL
+ [DllImport("devil.dll")]
private static extern void ilInit();
+#endif
- [DllImport("user32.dll")]
+ [DllImport("user32.dll")]
internal static extern bool LockWindowUpdate(IntPtr hwnd);
[DllImport("kernel32.dll", EntryPoint = "RtlZeroMemory", SetLastError = false)]
@@ -617,7 +619,9 @@ namespace CodeImp.DoomBuilder
// Initialize static classes
MapSet.Initialize();
+#if !NO_DEVIL
ilInit();
+#endif
// Create main window
General.WriteLogLine("Loading main interface window...");
@@ -917,9 +921,9 @@ namespace CodeImp.DoomBuilder
autoloadfile = null;
}
- #endregion
+#endregion
- #region ================== Terminate
+#region ================== Terminate
// This is for plugins to use
public static void Exit(bool properexit)
@@ -988,9 +992,9 @@ namespace CodeImp.DoomBuilder
Process.GetCurrentProcess().Kill();
}
- #endregion
+#endregion
- #region ================== Management
+#region ================== Management
// This creates a new map
[BeginAction("newmap")]
@@ -1613,9 +1617,9 @@ namespace CodeImp.DoomBuilder
}
}
- #endregion
+#endregion
- #region ================== Debug
+#region ================== Debug
// This shows a major failure
public static void Fail(string message)
@@ -1657,9 +1661,9 @@ namespace CodeImp.DoomBuilder
catch(Exception) { }
}
- #endregion
+#endregion
- #region ================== Tools
+#region ================== Tools
// This swaps two pointers
public static void Swap(ref T a, ref T b)
@@ -2089,9 +2093,9 @@ namespace CodeImp.DoomBuilder
}
}
- #endregion
+#endregion
- #region ================== mxd. Uncaught exceptions handling
+#region ================== mxd. Uncaught exceptions handling
// In some cases the program can remain operational after these
private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
@@ -2154,7 +2158,7 @@ namespace CodeImp.DoomBuilder
}
}
- #endregion
+#endregion
}
}
diff --git a/Source/Core/IO/FileImageReader.cs b/Source/Core/IO/FileImageReader.cs
index 6709b9a3..9f875332 100755
--- a/Source/Core/IO/FileImageReader.cs
+++ b/Source/Core/IO/FileImageReader.cs
@@ -43,6 +43,43 @@ namespace CodeImp.DoomBuilder.IO
internal const int IL_DDS = 0x0437; //!< DirectDraw Surface - .dds extension
}
+#if NO_DEVIL
+
+ internal unsafe class FileImageReader : IImageReader
+ {
+ public FileImageReader()
+ {
+ //imagetype = DevilImageType.IL_TYPE_UNKNOWN;
+ }
+
+ public FileImageReader(uint devilImagetype)
+ {
+ }
+
+ public FileImageReader(uint devilImagetype, int guesstype, Playpal guesspalette)
+ {
+ }
+
+ public Bitmap ReadAsBitmap(Stream stream)
+ {
+ int x, y;
+ return ReadAsBitmap(stream, out x, out y);
+ }
+
+ public Bitmap ReadAsBitmap(Stream stream, out int offsetx, out int offsety)
+ {
+ offsetx = 0;
+ offsety = 0;
+ return new Bitmap(64, 64, PixelFormat.Format32bppArgb);
+ }
+
+ public void DrawToPixelData(Stream stream, PixelColor* target, int targetwidth, int targetheight, int x, int y)
+ {
+ }
+ }
+
+#else
+
// [ZZ]
internal enum DevilError
{
@@ -77,7 +114,7 @@ namespace CodeImp.DoomBuilder.IO
internal unsafe class FileImageReader : IImageReader
{
- #region ================== APIs
+#region ================== APIs
[DllImport("devil.dll")]
private static extern void ilGenImages(int num, IntPtr images);
@@ -388,9 +425,9 @@ namespace CodeImp.DoomBuilder.IO
private readonly Playpal guesspalette;
private IImageReader proxyreader;
- #endregion
+#endregion
- #region ================== Constructor / Disposer
+#region ================== Constructor / Disposer
// Constructor
public FileImageReader()
@@ -421,9 +458,9 @@ namespace CodeImp.DoomBuilder.IO
GC.SuppressFinalize(this);
}
- #endregion
+#endregion
- #region ================== Methods
+#region ================== Methods
// This creates a Bitmap from the given data
// Returns null on failure
@@ -683,6 +720,8 @@ namespace CodeImp.DoomBuilder.IO
return true;
}
- #endregion
+#endregion
}
+
+#endif
}
diff --git a/Source/Core/NoScintilla.cs b/Source/Core/NoScintilla.cs
new file mode 100644
index 00000000..9defab44
--- /dev/null
+++ b/Source/Core/NoScintilla.cs
@@ -0,0 +1,151 @@
+using System;
+using System.Windows.Forms;
+using CodeImp.DoomBuilder.Controls;
+using CodeImp.DoomBuilder.Data.Scripting;
+using CodeImp.DoomBuilder.Windows;
+using CodeImp.DoomBuilder.Config;
+using CodeImp.DoomBuilder.Compilers;
+using CodeImp.DoomBuilder.Controls.Scripting;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Text;
+
+#if NO_SCINTILLA
+namespace CodeImp.DoomBuilder.Controls
+{
+ internal class ScriptEditorPanel : UserControl
+ {
+ public ScriptDocumentTab ActiveTab { get { return null; } }
+ public bool ShowWhitespace { get { return false; } }
+ public bool WrapLongLines { get { return false; } }
+ public void Initialize(ScriptEditorForm form) { }
+ public void ApplySettings() { }
+ public void SaveSettings() { }
+ public int FindReplace(FindReplaceOptions options) { return 0; }
+ public bool FindNext(FindReplaceOptions options) { return false; }
+ public bool FindNext() { return false; }
+ public bool FindPrevious(FindReplaceOptions options) { return false; }
+ public bool FindPrevious() { return false; }
+ public bool FindNextWrapAround(FindReplaceOptions options) { return false; }
+ public bool FindPreviousWrapAround(FindReplaceOptions options) { return false; }
+ public bool Replace(FindReplaceOptions options) { return false; }
+ public bool FindUsages(FindReplaceOptions options, ScriptType scripttype) { return false; }
+ public void CloseFindReplace(bool closing) { }
+ public void OpenFindAndReplace() { }
+ public void GoToLine() { }
+ public void RefreshSettings() { }
+ public void ClearErrors() { }
+ public void ShowErrors(IEnumerable errors, bool combine) { }
+ public void WriteOpenFilesToConfiguration() { }
+ public bool AskSaveAll() { return true; }
+ public bool CheckImplicitChanges() { return false; }
+ public void ForceFocus() { }
+ public void ImplicitSave() { }
+ public ScriptFileDocumentTab OpenFile(string filename, ScriptType scripttype) { return null; }
+ public void ExplicitSaveCurrentTab() { }
+ public void OpenBrowseScript() { }
+ public bool LaunchKeywordHelp() { return false; }
+ public void OnClose() { }
+
+ internal ScriptIconsManager Icons { get; private set; }
+ internal ScriptResourceDocumentTab OpenResource(ScriptResource resource) { return null; }
+ internal ScriptResourcesControl ScriptResourcesControl { get; private set; }
+
+ public void DisplayStatus(ScriptStatusType type, string message) { }
+ public void ShowError(TextResourceErrorItem error) { }
+
+ public void OnReloadResources() { }
+ }
+
+ internal class ScriptEditorControl : UserControl
+ {
+ private static Encoding encoding = Encoding.GetEncoding(1251); //mxd. ASCII with cyrillic support...
+ internal static Encoding Encoding { get { return encoding; } }
+
+ public delegate void ExplicitSaveTabDelegate();
+ public delegate void OpenScriptBrowserDelegate();
+ public delegate void OpenFindReplaceDelegate();
+ public delegate bool FindNextDelegate();
+ public delegate bool FindPreviousDelegate();
+ public delegate bool FindNextWrapAroundDelegate(FindReplaceOptions options);
+ public delegate bool FindPreviousWrapAroundDelegate(FindReplaceOptions options);
+ public delegate void GoToLineDelegate();
+ public delegate void CompileScriptDelegate();
+
+ public event ExplicitSaveTabDelegate OnExplicitSaveTab;
+ public event OpenScriptBrowserDelegate OnOpenScriptBrowser;
+ public event OpenFindReplaceDelegate OnOpenFindAndReplace;
+ public event FindNextDelegate OnFindNext;
+ public event FindPreviousDelegate OnFindPrevious;
+ public event FindNextWrapAroundDelegate OnFindNextWrapAround;
+ public event FindPreviousWrapAroundDelegate OnFindPreviousWrapAround;
+ public new event EventHandler OnTextChanged;
+ public event EventHandler OnFunctionBarDropDown;
+ public event GoToLineDelegate OnGoToLine;
+ public event CompileScriptDelegate OnCompileScript;
+
+ public bool IsChanged { get { return false; } }
+ public int SelectionStart { get; set; }
+ public int SelectionEnd { get; set; }
+ public new string Text { get; set; }
+ public string SelectedText { get; set; }
+ public bool ShowWhitespace { get; set; }
+ public bool WrapLongLines { get; set; }
+
+ public bool LaunchKeywordHelp() { return false; }
+ public void ReplaceSelection(string replacement) { }
+ public void MoveToLine(int linenumber) { }
+ public void EnsureLineVisible(int linenumber) { }
+ public int LineFromPosition(int position) { return 0; }
+ public void ClearMarks() { }
+ public void AddMark(int linenumber) { }
+ public void RefreshStyle() { }
+ public void SetupStyles(ScriptConfiguration config) { }
+ public string GetCurrentWord() { return ""; }
+ public string GetWordAt(int position) { return ""; }
+ public void Undo() { }
+ public void Redo() { }
+ public void ClearUndoRedo() { }
+ public void SetSavePoint() { }
+ public void Cut() { }
+ public void Copy() { }
+ public void Paste() { }
+ public void GrabFocus() { }
+ public byte[] GetText() { return null; }
+ public void SetText(byte[] text) { }
+ public void InsertSnippet(string[] lines) { }
+ public bool FindNext(FindReplaceOptions options, bool useselectionstart) { return false; }
+ public bool FindPrevious(FindReplaceOptions options) { return false; }
+ public void IndentSelection(bool indent) { }
+ public void DuplicateLine() { }
+ }
+
+ internal class ScriptEditorPreviewControl : UserControl
+ {
+ public string FontName { set; private get; }
+ public int FontSize { set; private get; }
+ public bool FontBold { set; private get; }
+ public int TabWidth { set; private get; }
+ public bool ShowLineNumbers { set; private get; }
+ public bool ShowFolding { set; private get; }
+ public Color ScriptBackground { set; private get; }
+ public Color FoldForeColor { set; private get; }
+ public Color FoldBackColor { set; private get; }
+ public Color LineNumbers { set; private get; }
+ public Color PlainText { set; private get; }
+ public Color Comments { set; private get; }
+ public Color Keywords { set; private get; }
+ public Color Properties { set; private get; }
+ public Color Literals { set; private get; }
+ public Color Constants { set; private get; }
+ public Color Strings { set; private get; }
+ public Color Includes { set; private get; }
+ public Color SelectionForeColor { set; private get; }
+ public Color SelectionBackColor { set; private get; }
+ public Color WhitespaceColor { set; private get; }
+ public Color BraceHighlight { set; private get; }
+ public Color BadBraceHighlight { set; private get; }
+ public Color ScriptIndicator { set; private get; }
+ }
+}
+#endif
diff --git a/Source/Core/Windows/ScriptEditorForm.cs b/Source/Core/Windows/ScriptEditorForm.cs
index 828432c1..04ff5209 100755
--- a/Source/Core/Windows/ScriptEditorForm.cs
+++ b/Source/Core/Windows/ScriptEditorForm.cs
@@ -22,155 +22,6 @@ using CodeImp.DoomBuilder.Controls;
#endregion
-#if NO_SCINTILLA
-using CodeImp.DoomBuilder.Data.Scripting;
-using CodeImp.DoomBuilder.Windows;
-using CodeImp.DoomBuilder.Config;
-using CodeImp.DoomBuilder.Compilers;
-using CodeImp.DoomBuilder.Controls.Scripting;
-using System.Collections.Generic;
-using System.Drawing;
-using System.Text;
-
-namespace CodeImp.DoomBuilder.Controls
-{
- internal class ScriptEditorPanel : UserControl
- {
- public ScriptDocumentTab ActiveTab { get { return null; } }
- public bool ShowWhitespace { get { return false; } }
- public bool WrapLongLines { get { return false; } }
- public void Initialize(ScriptEditorForm form) { }
- public void ApplySettings() { }
- public void SaveSettings() { }
- public int FindReplace(FindReplaceOptions options) { return 0; }
- public bool FindNext(FindReplaceOptions options) { return false; }
- public bool FindNext() { return false; }
- public bool FindPrevious(FindReplaceOptions options) { return false; }
- public bool FindPrevious() { return false; }
- public bool FindNextWrapAround(FindReplaceOptions options) { return false; }
- public bool FindPreviousWrapAround(FindReplaceOptions options) { return false; }
- public bool Replace(FindReplaceOptions options) { return false; }
- public bool FindUsages(FindReplaceOptions options, ScriptType scripttype) { return false; }
- public void CloseFindReplace(bool closing) { }
- public void OpenFindAndReplace() { }
- public void GoToLine() { }
- public void RefreshSettings() { }
- public void ClearErrors() { }
- public void ShowErrors(IEnumerable errors, bool combine) { }
- public void WriteOpenFilesToConfiguration() { }
- public bool AskSaveAll() { return true; }
- public bool CheckImplicitChanges() { return false; }
- public void ForceFocus() { }
- public void ImplicitSave() { }
- public ScriptFileDocumentTab OpenFile(string filename, ScriptType scripttype) { return null; }
- public void ExplicitSaveCurrentTab() { }
- public void OpenBrowseScript() { }
- public bool LaunchKeywordHelp() { return false; }
- public void OnClose() { }
-
- internal ScriptIconsManager Icons { get; private set; }
- internal ScriptResourceDocumentTab OpenResource(ScriptResource resource) { return null; }
- internal ScriptResourcesControl ScriptResourcesControl { get; private set; }
-
- public void DisplayStatus(ScriptStatusType type, string message) { }
- public void ShowError(TextResourceErrorItem error) { }
-
- public void OnReloadResources() { }
- }
-
- internal class ScriptEditorControl : UserControl
- {
- private static Encoding encoding = Encoding.GetEncoding(1251); //mxd. ASCII with cyrillic support...
- internal static Encoding Encoding { get { return encoding; } }
-
- public delegate void ExplicitSaveTabDelegate();
- public delegate void OpenScriptBrowserDelegate();
- public delegate void OpenFindReplaceDelegate();
- public delegate bool FindNextDelegate();
- public delegate bool FindPreviousDelegate();
- public delegate bool FindNextWrapAroundDelegate(FindReplaceOptions options);
- public delegate bool FindPreviousWrapAroundDelegate(FindReplaceOptions options);
- public delegate void GoToLineDelegate();
- public delegate void CompileScriptDelegate();
-
- public event ExplicitSaveTabDelegate OnExplicitSaveTab;
- public event OpenScriptBrowserDelegate OnOpenScriptBrowser;
- public event OpenFindReplaceDelegate OnOpenFindAndReplace;
- public event FindNextDelegate OnFindNext;
- public event FindPreviousDelegate OnFindPrevious;
- public event FindNextWrapAroundDelegate OnFindNextWrapAround;
- public event FindPreviousWrapAroundDelegate OnFindPreviousWrapAround;
- public new event EventHandler OnTextChanged;
- public event EventHandler OnFunctionBarDropDown;
- public event GoToLineDelegate OnGoToLine;
- public event CompileScriptDelegate OnCompileScript;
-
- public bool IsChanged { get { return false; } }
- public int SelectionStart { get; set; }
- public int SelectionEnd { get; set; }
- public new string Text { get; set; }
- public string SelectedText { get; set; }
- public bool ShowWhitespace { get; set; }
- public bool WrapLongLines { get; set;}
-
- public bool LaunchKeywordHelp() { return false; }
- public void ReplaceSelection(string replacement) { }
- public void MoveToLine(int linenumber) { }
- public void EnsureLineVisible(int linenumber) { }
- public int LineFromPosition(int position) { return 0; }
- public void ClearMarks() { }
- public void AddMark(int linenumber) { }
- public void RefreshStyle() { }
- public void SetupStyles(ScriptConfiguration config) { }
- public string GetCurrentWord() { return ""; }
- public string GetWordAt(int position) { return ""; }
- public void Undo() { }
- public void Redo() { }
- public void ClearUndoRedo() { }
- public void SetSavePoint() { }
- public void Cut() { }
- public void Copy() { }
- public void Paste() { }
- public void GrabFocus() { }
- public byte[] GetText() { return null; }
- public void SetText(byte[] text) { }
- public void InsertSnippet(string[] lines) { }
- public bool FindNext(FindReplaceOptions options, bool useselectionstart) { return false; }
- public bool FindPrevious(FindReplaceOptions options) { return false; }
- public void IndentSelection(bool indent) { }
- public void DuplicateLine() { }
- }
-
- internal class ScriptEditorPreviewControl : UserControl
- {
- public string FontName { set; private get; }
- public int FontSize { set; private get; }
- public bool FontBold { set; private get; }
- public int TabWidth { set; private get; }
- public bool ShowLineNumbers { set; private get; }
- public bool ShowFolding { set; private get; }
- public Color ScriptBackground { set; private get; }
- public Color FoldForeColor { set; private get; }
- public Color FoldBackColor { set; private get; }
- public Color LineNumbers { set; private get; }
- public Color PlainText { set; private get; }
- public Color Comments { set; private get; }
- public Color Keywords { set; private get; }
- public Color Properties { set; private get; }
- public Color Literals { set; private get; }
- public Color Constants { set; private get; }
- public Color Strings { set; private get; }
- public Color Includes { set; private get; }
- public Color SelectionForeColor { set; private get; }
- public Color SelectionBackColor { set; private get; }
- public Color WhitespaceColor { set; private get; }
- public Color BraceHighlight { set; private get; }
- public Color BadBraceHighlight { set; private get; }
- public Color ScriptIndicator { set; private get; }
- }
-}
-#endif
-
namespace CodeImp.DoomBuilder.Windows
{
internal partial class ScriptEditorForm : DelayedForm