diff --git a/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/DataFormats/Setup/ArkAngles/SETDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/DataFormats/Setup/ArkAngles/SETDataFormat.cs
new file mode 100644
index 00000000..c7bc56c6
--- /dev/null
+++ b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/DataFormats/Setup/ArkAngles/SETDataFormat.cs
@@ -0,0 +1,80 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using UniversalEditor.IO;
+using UniversalEditor.ObjectModels.Setup.ArkAngles;
+
+namespace UniversalEditor.DataFormats.Setup.ArkAngles
+{
+ public class SETDataFormat : DataFormat
+ {
+ private static DataFormatReference _dfr = null;
+ protected override DataFormatReference MakeReferenceInternal()
+ {
+ if (_dfr == null)
+ {
+ _dfr = base.MakeReferenceInternal();
+ _dfr.Capabilities.Add(typeof(SetupObjectModel), DataFormatCapabilities.All);
+ }
+ return _dfr;
+ }
+
+ protected override void LoadInternal(ref ObjectModel objectModel)
+ {
+ SetupObjectModel setup = (objectModel as SetupObjectModel);
+ if (setup == null) throw new ObjectModelNotSupportedException();
+
+ Reader reader = base.Accessor.Reader;
+ while (!reader.EndOfStream)
+ {
+ string line = reader.ReadLine();
+
+ string command = line.Substring(0, line.IndexOf(' '));
+ string paramzLine = line.Substring(line.IndexOf(' ') + 1);
+ string[] paramz = paramzLine.Split(new char[] { ',' });
+
+ switch (command.ToLower())
+ {
+ case "catalog":
+ {
+ setup.CatalogExecutableFileName = paramzLine;
+ break;
+ }
+ case "doc":
+ {
+ // NOTE: the DOC command is found in install.set (DOS) but not
+ // recognized by setup1.exe (Win16)
+ setup.DocumentationFileName = paramzLine;
+ break;
+ }
+ case "msg":
+ case "footer":
+ {
+ setup.FooterText = paramzLine;
+ break;
+ }
+ case "picture":
+ {
+ // I guess this is ignored in non-DOS versions, but we still have to
+ // parse it
+ int unknown1 = Int32.Parse(paramz[0].Trim());
+ int unknown2 = Int32.Parse(paramz[1].Trim());
+ int cols = Int32.Parse(paramz[2].Trim());
+ int rows = Int32.Parse(paramz[3].Trim());
+ for (int i = 0; i < rows; i++)
+ {
+ string row = reader.ReadLine();
+ }
+ break;
+ }
+ }
+ }
+
+ }
+
+ protected override void SaveInternal(ObjectModel objectModel)
+ {
+ }
+ }
+}
diff --git a/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Setup/ArkAngles/SetupObjectModel.cs b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Setup/ArkAngles/SetupObjectModel.cs
new file mode 100644
index 00000000..16cbf11e
--- /dev/null
+++ b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Setup/ArkAngles/SetupObjectModel.cs
@@ -0,0 +1,38 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace UniversalEditor.ObjectModels.Setup.ArkAngles
+{
+ public class SetupObjectModel : ObjectModel
+ {
+ private string mvarCatalogExecutableFileName = String.Empty;
+ ///
+ /// The file name of the catalog executable to launch via the "Catalog" button. If this value is empty, the "Catalog" button is not displayed.
+ ///
+ public string CatalogExecutableFileName { get { return mvarCatalogExecutableFileName; } set { mvarCatalogExecutableFileName = value; } }
+
+ private string mvarDocumentationFileName = String.Empty;
+ ///
+ ///
+ ///
+ public string DocumentationFileName { get { return mvarDocumentationFileName; } set { mvarDocumentationFileName = value; } }
+
+ private string mvarFooterText = String.Empty;
+ ///
+ /// The text to display at the bottom of the installer background window.
+ ///
+ public string FooterText { get { return mvarFooterText; } set { mvarFooterText = value; } }
+
+ public override void Clear()
+ {
+ throw new NotImplementedException();
+ }
+
+ public override void CopyTo(ObjectModel where)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/Properties/AssemblyInfo.cs b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..dd451841
--- /dev/null
+++ b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("UniversalEditor.Plugins.ArkAngles")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("UniversalEditor.Plugins.ArkAngles")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2015")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("446492ff-cc35-4bcd-9003-3823cfdb1a51")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/UniversalEditor.Plugins.ArkAngles.csproj b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/UniversalEditor.Plugins.ArkAngles.csproj
new file mode 100644
index 00000000..8dfccc00
--- /dev/null
+++ b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/UniversalEditor.Plugins.ArkAngles.csproj
@@ -0,0 +1,62 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {21D14362-103A-4B38-8FB8-EEA6C7C89E09}
+ Library
+ Properties
+ UniversalEditor
+ UniversalEditor.Plugins.ArkAngles
+ v3.5
+ 512
+
+
+ true
+ full
+ false
+ ..\..\Output\Debug\Plugins\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ ..\..\Output\Release\Plugins\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+ {2d4737e6-6d95-408a-90db-8dff38147e85}
+ UniversalEditor.Core
+
+
+ {30467e5c-05bc-4856-aadc-13906ef4cadd}
+ UniversalEditor.Essential
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CSharp/UniversalEditor.WindowsForms.sln b/CSharp/UniversalEditor.WindowsForms.sln
index fbf83e3e..f3847bbd 100644
--- a/CSharp/UniversalEditor.WindowsForms.sln
+++ b/CSharp/UniversalEditor.WindowsForms.sln
@@ -1,8 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.31101.0
-MinimumVisualStudioVersion = 10.0.40219.1
+# Visual Studio 2012
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{15D19291-4200-4C30-A68A-0191B6F83BE1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Core", "Libraries\UniversalEditor.Core\UniversalEditor.Core.csproj", "{2D4737E6-6D95-408A-90DB-8DFF38147E85}"
@@ -147,6 +145,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.Mic
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.Microsoft.Setup", "Plugins\UniversalEditor.Plugins.Microsoft.Setup\UniversalEditor.Plugins.Microsoft.Setup.csproj", "{05127997-B7F3-4802-8021-06C048C8FE63}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.ArkAngles", "Plugins\UniversalEditor.Plugins.ArkAngles\UniversalEditor.Plugins.ArkAngles.csproj", "{21D14362-103A-4B38-8FB8-EEA6C7C89E09}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -398,34 +398,31 @@ Global
{05127997-B7F3-4802-8021-06C048C8FE63}.Debug|Any CPU.Build.0 = Debug|Any CPU
{05127997-B7F3-4802-8021-06C048C8FE63}.Release|Any CPU.ActiveCfg = Release|Any CPU
{05127997-B7F3-4802-8021-06C048C8FE63}.Release|Any CPU.Build.0 = Release|Any CPU
+ {21D14362-103A-4B38-8FB8-EEA6C7C89E09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {21D14362-103A-4B38-8FB8-EEA6C7C89E09}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {21D14362-103A-4B38-8FB8-EEA6C7C89E09}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {21D14362-103A-4B38-8FB8-EEA6C7C89E09}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{2D4737E6-6D95-408A-90DB-8DFF38147E85} = {15D19291-4200-4C30-A68A-0191B6F83BE1}
- {30467E5C-05BC-4856-AADC-13906EF4CADD} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{3F664673-7E22-4486-9AD0-FC81861D0B78} = {15D19291-4200-4C30-A68A-0191B6F83BE1}
+ {8622EBC4-8E20-476E-B284-33D472081F5C} = {15D19291-4200-4C30-A68A-0191B6F83BE1}
+ {6F0AB1AF-E1A1-4D19-B19C-05BBB15C94B2} = {A935623A-E98E-43FF-BBE2-DAA61A587345}
+ {62CFC025-B8CF-42AA-880A-92F27377FCAF} = {A935623A-E98E-43FF-BBE2-DAA61A587345}
+ {30467E5C-05BC-4856-AADC-13906EF4CADD} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{7CA0A889-C1A1-4CEB-AA54-43A640B41C6C} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{BE4D0BA3-0888-42A5-9C09-FC308A4509D2} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
- {617D9EB5-CA93-45D6-AA6B-5A012B7698AC} = {5A423A3E-51C5-4188-8AD5-FB5C0CB76C6A}
- {8622EBC4-8E20-476E-B284-33D472081F5C} = {15D19291-4200-4C30-A68A-0191B6F83BE1}
- {FE016EA3-DC31-4A92-8B0A-8C746EC117E1} = {46041F27-7C1C-4209-B72B-251EDB5D4C61}
{369CFD53-3E65-4A9E-8BDD-4CCD78BF3E33} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{30A2F772-8EC1-425A-8D5D-36A0BE4D6B66} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{3DC2C1F6-F332-4E55-BF6A-AED78A7C3FD2} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{899E3DD6-EA65-4168-AAE3-867A4F9650A6} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
- {6F0AB1AF-E1A1-4D19-B19C-05BBB15C94B2} = {A935623A-E98E-43FF-BBE2-DAA61A587345}
- {C1F34183-7A2F-41A6-9958-F6F329099654} = {A846CA33-9CAA-4237-B14F-8721DBA89442}
- {2013757E-4240-4E07-AD22-91219AD9B74F} = {C1F34183-7A2F-41A6-9958-F6F329099654}
- {5A423A3E-51C5-4188-8AD5-FB5C0CB76C6A} = {C1F34183-7A2F-41A6-9958-F6F329099654}
{19AEFD28-37E8-4FFD-B879-FEE57824689D} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{76FD1306-9CA4-428F-993B-B7E4EEEACBF3} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{26095090-3F7D-4DB5-A9BF-4C687230FC0F} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
- {D3CE7A47-3989-4B6D-9867-0EA3C8DD7AB1} = {C1F34183-7A2F-41A6-9958-F6F329099654}
- {54990D5E-CE09-459F-916E-AF13101765B4} = {C1F34183-7A2F-41A6-9958-F6F329099654}
{D4D9C9A6-04A4-46AD-8238-2493A455723F} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
- {62CFC025-B8CF-42AA-880A-92F27377FCAF} = {A935623A-E98E-43FF-BBE2-DAA61A587345}
{4FD9DB1D-76AA-48D1-8446-95376C4A2BC2} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{10B9B771-9939-4D0B-8D47-501B6F60209F} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{FEC4EAD0-8A6E-4029-A537-EBD9F420B227} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
@@ -436,38 +433,46 @@ Global
{FD6B879E-46B0-47BE-860E-BF0C11135590} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{41DBA506-177E-4B2D-8E6D-738E371326A1} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{BED1EEAF-9ADD-46F6-92D0-53957858E25B} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
- {E0897B7B-617A-4709-A4C6-FC0F6B441B2A} = {5A423A3E-51C5-4188-8AD5-FB5C0CB76C6A}
{9F1FDC26-5F1C-4C2A-BBBF-3A597A72802D} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{E6C9A73D-4556-4220-9BC7-302A7EE64C1A} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
- {ED627DF7-3E78-4428-AB31-810BA1586E62} = {46041F27-7C1C-4209-B72B-251EDB5D4C61}
{DF96F24E-FED9-4BAC-8389-63590125DC61} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
- {118E40C4-323E-4B4B-8EF4-38EED6CC5E83} = {54990D5E-CE09-459F-916E-AF13101765B4}
+ {E0B0223C-3E44-4D2A-9FED-F1A319D84D39} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
+ {791A36F8-5D96-452B-89D2-78BA74596A1E} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
+ {4698BC3F-EC29-42EB-9AED-3D8F9983A108} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
+ {04674541-23C2-4308-A9DF-DBC43AE99814} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
+ {B2DFA94A-A468-48A1-AB31-04EE432E7B2B} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
+ {A968C097-44CE-42BA-B66C-CB3A871EE117} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
+ {CC5C9010-83EF-491D-9262-2CED509D895D} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
+ {7C861D40-8214-4DC5-89D1-129F267C1D1B} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
+ {64089452-6A08-47A5-A857-BF418F80D4A3} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
+ {7BB04C9F-DC3F-448A-8FD3-9A6BB52BC886} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
+ {D623EC26-1A04-4BFE-84EE-E738281499C0} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
+ {311885BE-3FAF-430B-91B2-6EC135D3A8AB} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
+ {05127997-B7F3-4802-8021-06C048C8FE63} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
+ {21D14362-103A-4B38-8FB8-EEA6C7C89E09} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
+ {FE016EA3-DC31-4A92-8B0A-8C746EC117E1} = {46041F27-7C1C-4209-B72B-251EDB5D4C61}
+ {ED627DF7-3E78-4428-AB31-810BA1586E62} = {46041F27-7C1C-4209-B72B-251EDB5D4C61}
+ {C1F34183-7A2F-41A6-9958-F6F329099654} = {A846CA33-9CAA-4237-B14F-8721DBA89442}
+ {5A423A3E-51C5-4188-8AD5-FB5C0CB76C6A} = {C1F34183-7A2F-41A6-9958-F6F329099654}
+ {2013757E-4240-4E07-AD22-91219AD9B74F} = {C1F34183-7A2F-41A6-9958-F6F329099654}
+ {D3CE7A47-3989-4B6D-9867-0EA3C8DD7AB1} = {C1F34183-7A2F-41A6-9958-F6F329099654}
+ {54990D5E-CE09-459F-916E-AF13101765B4} = {C1F34183-7A2F-41A6-9958-F6F329099654}
+ {617D9EB5-CA93-45D6-AA6B-5A012B7698AC} = {5A423A3E-51C5-4188-8AD5-FB5C0CB76C6A}
+ {E0897B7B-617A-4709-A4C6-FC0F6B441B2A} = {5A423A3E-51C5-4188-8AD5-FB5C0CB76C6A}
{BCBB72BD-0ECB-4FF2-8D91-E466361FB6F9} = {2013757E-4240-4E07-AD22-91219AD9B74F}
{D8E59ADD-B591-49AF-B18E-6E0D4581700C} = {D3CE7A47-3989-4B6D-9867-0EA3C8DD7AB1}
{9B5ABDC3-ADF7-42B7-ADE9-8DC715310492} = {D3CE7A47-3989-4B6D-9867-0EA3C8DD7AB1}
{4250B20B-2DC9-432F-B0C2-BD20B80B4970} = {D3CE7A47-3989-4B6D-9867-0EA3C8DD7AB1}
{049A3447-14AF-4CAE-BE0E-1C42DD1AB1CB} = {D3CE7A47-3989-4B6D-9867-0EA3C8DD7AB1}
- {A5A14A71-5DB3-4495-92F6-8D27C98FF0F4} = {BC6859FB-B61C-471D-9F84-613E5C388C52}
- {E0B0223C-3E44-4D2A-9FED-F1A319D84D39} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
- {791A36F8-5D96-452B-89D2-78BA74596A1E} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{EE70D9BB-52FB-4BF5-A704-06F4881301CF} = {D3CE7A47-3989-4B6D-9867-0EA3C8DD7AB1}
- {4698BC3F-EC29-42EB-9AED-3D8F9983A108} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
- {04674541-23C2-4308-A9DF-DBC43AE99814} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
- {B2DFA94A-A468-48A1-AB31-04EE432E7B2B} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{F19919B7-1D51-4972-8E4A-E59D68D4926A} = {D3CE7A47-3989-4B6D-9867-0EA3C8DD7AB1}
- {A968C097-44CE-42BA-B66C-CB3A871EE117} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
- {CC5C9010-83EF-491D-9262-2CED509D895D} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{094E86E4-903B-493C-91EF-4597658748A9} = {D3CE7A47-3989-4B6D-9867-0EA3C8DD7AB1}
- {7C861D40-8214-4DC5-89D1-129F267C1D1B} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{F635B40D-4BC1-48CB-9FFD-38076D569640} = {D3CE7A47-3989-4B6D-9867-0EA3C8DD7AB1}
- {64089452-6A08-47A5-A857-BF418F80D4A3} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{997FFB89-0ED6-47EB-BD97-68B3138F91AD} = {D3CE7A47-3989-4B6D-9867-0EA3C8DD7AB1}
- {7BB04C9F-DC3F-448A-8FD3-9A6BB52BC886} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
- {D623EC26-1A04-4BFE-84EE-E738281499C0} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{E1A1FD87-BEA4-41B7-9472-B4E35A0630B5} = {D3CE7A47-3989-4B6D-9867-0EA3C8DD7AB1}
- {311885BE-3FAF-430B-91B2-6EC135D3A8AB} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
{14341BB8-05E4-4EF8-AD05-3D3073C1EF00} = {D3CE7A47-3989-4B6D-9867-0EA3C8DD7AB1}
{B6F4A892-3701-445D-A7E9-B5D5C07FEF2D} = {D3CE7A47-3989-4B6D-9867-0EA3C8DD7AB1}
- {05127997-B7F3-4802-8021-06C048C8FE63} = {71CFF024-26F7-4626-A526-B435FDF8D64E}
+ {118E40C4-323E-4B4B-8EF4-38EED6CC5E83} = {54990D5E-CE09-459F-916E-AF13101765B4}
+ {A5A14A71-5DB3-4495-92F6-8D27C98FF0F4} = {BC6859FB-B61C-471D-9F84-613E5C388C52}
EndGlobalSection
EndGlobal