Skip to content

Commit 1087f66

Browse files
committed
commit merge
2 parents e777bf2 + 599cc13 commit 1087f66

File tree

2 files changed

+71
-8
lines changed

2 files changed

+71
-8
lines changed

PegasusExportPlugin/PegasusExportPlugin.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,13 @@
3434
<StartupObject />
3535
</PropertyGroup>
3636
<ItemGroup>
37+
<Reference Include="netstandard" />
3738
<Reference Include="System" />
3839
<Reference Include="System.Core" />
3940
<Reference Include="System.Drawing" />
41+
<Reference Include="System.Drawing.Common">
42+
<HintPath>..\..\..\..\LaunchBox\Metadata\System.Drawing.Common.dll</HintPath>
43+
</Reference>
4044
<Reference Include="System.Windows.Forms" />
4145
<Reference Include="System.Xml.Linq" />
4246
<Reference Include="System.Data.DataSetExtensions" />

PegasusExportPlugin/frmPegasusExport.cs

Lines changed: 67 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
using Unbroken.LaunchBox.Plugins;
1818
using Unbroken.LaunchBox.Plugins.Data;
1919
using PegasusExportPlugin.Extensions;
20+
using Unbroken.LaunchBox;
2021

2122
namespace PegasusExportPlugin
2223
{
@@ -184,28 +185,70 @@ await Task.Run(() =>
184185

185186
if (!string.IsNullOrWhiteSpace(game.ApplicationPath))
186187
{
187-
string file;
188+
var files = new HashSet<string>();
189+
var additionalApplications = game.GetAllAdditionalApplications();
188190
if (copyApplication)
189191
{
190-
file = Path.GetFileName(game.ApplicationPath);
192+
files.Add(Path.GetFileName(game.ApplicationPath));
193+
foreach (var application in additionalApplications)
194+
{
195+
var fileName = Path.GetFileName(application.ApplicationPath);
196+
if (!files.Contains(fileName))
197+
{
198+
files.Add(fileName);
199+
}
200+
}
191201
}
192202
else
193203
{
194204
if(applicationAbsolutePath)
195205
{
196-
file = Path.GetFullPath(game.ApplicationPath);
206+
files.Add(Path.GetFullPath(game.ApplicationPath));
207+
foreach (var application in additionalApplications)
208+
{
209+
var fileName = Path.GetFullPath(application.ApplicationPath);
210+
if (!files.Contains(fileName))
211+
{
212+
files.Add(fileName);
213+
}
214+
}
197215
}
198216
else
199217
{
200-
file = GetRelativePath(platformPath, game.ApplicationPath);
218+
files.Add(GetRelativePath(platformPath, game.ApplicationPath));
219+
foreach (var application in additionalApplications)
220+
{
221+
var fileName = GetRelativePath(platformPath, application.ApplicationPath);
222+
if (!files.Contains(fileName))
223+
{
224+
files.Add(fileName);
225+
}
226+
}
201227
}
202228
}
203-
gameMetadataBuilder.AppendLine($"file: {file}");
204229

205-
var fileExtension = Path.GetExtension(file).Replace(".", "");
206-
if (!fileExtensions.Contains(fileExtension))
230+
if (files.Count > 1)
207231
{
208-
fileExtensions.Add(fileExtension);
232+
gameMetadataBuilder.AppendLine($"files:");
233+
foreach (var file in files)
234+
{
235+
gameMetadataBuilder.AppendLine($" {file}");
236+
var fileExtension = Path.GetExtension(file).Replace(".", "");
237+
if (!fileExtensions.Contains(fileExtension))
238+
{
239+
fileExtensions.Add(fileExtension);
240+
}
241+
}
242+
}
243+
else if (files.Count > 0)
244+
{
245+
var file = files.First();
246+
gameMetadataBuilder.AppendLine($"file: {file}");
247+
var fileExtension = Path.GetExtension(file).Replace(".", "");
248+
if (!fileExtensions.Contains(fileExtension))
249+
{
250+
fileExtensions.Add(fileExtension);
251+
}
209252
}
210253
}
211254

@@ -346,6 +389,22 @@ await Task.Run(() =>
346389
//Export Roms
347390
if (copyApplication && exportApplication)
348391
{
392+
var additionalApplications = game.GetAllAdditionalApplications();
393+
394+
foreach (var additionalApplication in additionalApplications)
395+
{
396+
if (!string.IsNullOrWhiteSpace(additionalApplication.ApplicationPath) && File.Exists(additionalApplication.ApplicationPath))
397+
{
398+
File.Copy(additionalApplication.ApplicationPath,
399+
Path.Combine(platformPath, Path.GetFileName(additionalApplication.ApplicationPath)), true);
400+
var fileExtension = Path.GetExtension(additionalApplication.ApplicationPath).Replace(".", "");
401+
if (!fileExtensions.Contains(fileExtension))
402+
{
403+
fileExtensions.Add(fileExtension);
404+
}
405+
}
406+
}
407+
349408
if (!string.IsNullOrWhiteSpace(game.ApplicationPath) && File.Exists(game.ApplicationPath))
350409
{
351410
File.Copy(game.ApplicationPath,

0 commit comments

Comments
 (0)