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