Skip to content

Commit

Permalink
added cons support for maps
Browse files Browse the repository at this point in the history
  • Loading branch information
fgsfds committed Jun 14, 2024
1 parent 1915873 commit 56a5a80
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 57 deletions.
23 changes: 12 additions & 11 deletions src/Ports/Ports/EDuke32/EDuke32.cs
Original file line number Diff line number Diff line change
Expand Up @@ -197,22 +197,23 @@ protected void GetDukeArgs(StringBuilder sb, DukeGame game, IAddon addon)
}


if (dCamp.Type is AddonTypeEnum.TC)
if (dCamp.MainCon is not null)
{
sb.Append($@" {AddFileParam}""{Path.Combine(game.CampaignsFolderPath, dCamp.FileName)}""");
sb.Append($@" {MainConParam}""{dCamp.MainCon}""");
}

if (dCamp.MainCon is not null)
if (dCamp.AdditionalCons?.Count > 0)
{
foreach (var con in dCamp.AdditionalCons)
{
sb.Append($@" {MainConParam}""{dCamp.MainCon}""");
sb.Append($@" {AddConParam}""{con}""");
}
}

if (dCamp.AdditionalCons?.Count > 0)
{
foreach (var con in dCamp.AdditionalCons)
{
sb.Append($@" {AddConParam}""{con}""");
}
}

if (dCamp.Type is AddonTypeEnum.TC)
{
sb.Append($@" {AddFileParam}""{Path.Combine(game.CampaignsFolderPath, dCamp.FileName)}""");
}
else if (dCamp.Type is AddonTypeEnum.Map)
{
Expand Down
24 changes: 13 additions & 11 deletions src/Ports/Ports/EDuke32/Fury.cs
Original file line number Diff line number Diff line change
Expand Up @@ -94,22 +94,24 @@ private void GetFuryArgs(StringBuilder sb, FuryGame game, IAddon addon)
return;
}

if (fCamp.Type is AddonTypeEnum.TC)

if (fCamp.MainCon is not null)
{
sb.Append($@" {AddFileParam}""{Path.Combine(game.CampaignsFolderPath, fCamp.FileName)}""");
sb.Append($@" {MainConParam}""{fCamp.MainCon}""");
}

if (fCamp.MainCon is not null)
if (fCamp.AdditionalCons?.Count > 0)
{
foreach (var con in fCamp.AdditionalCons)
{
sb.Append($@" {MainConParam}""{fCamp.MainCon}""");
sb.Append($@" {AddConParam}""{con}""");
}
}

if (fCamp.AdditionalCons?.Count > 0)
{
foreach (var con in fCamp.AdditionalCons)
{
sb.Append($@" {AddConParam}""{con}""");
}
}

if (fCamp.Type is AddonTypeEnum.TC)
{
sb.Append($@" {AddFileParam}""{Path.Combine(game.CampaignsFolderPath, fCamp.FileName)}""");
}
else if (fCamp.Type is AddonTypeEnum.Map)
{
Expand Down
23 changes: 12 additions & 11 deletions src/Ports/Ports/EDuke32/RedNukem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -137,22 +137,23 @@ private void GetRedneckArgs(StringBuilder sb, RedneckGame game, IAddon addon)
}


if (rCamp.Type is AddonTypeEnum.TC)
if (rCamp.MainCon is not null)
{
sb.Append($@" {AddFileParam}""{Path.Combine(game.CampaignsFolderPath, rCamp.FileName)}""");
sb.Append($@" {MainConParam}""{rCamp.MainCon}""");
}

if (rCamp.MainCon is not null)
if (rCamp.AdditionalCons?.Count > 0)
{
foreach (var con in rCamp.AdditionalCons)
{
sb.Append($@" {MainConParam}""{rCamp.MainCon}""");
sb.Append($@" {AddConParam}""{con}""");
}
}

if (rCamp.AdditionalCons?.Count > 0)
{
foreach (var con in rCamp.AdditionalCons)
{
sb.Append($@" {AddConParam}""{con}""");
}
}

if (rCamp.Type is AddonTypeEnum.TC)
{
sb.Append($@" {AddFileParam}""{Path.Combine(game.CampaignsFolderPath, rCamp.FileName)}""");
}
else if (rCamp.Type is AddonTypeEnum.Map)
{
Expand Down
46 changes: 24 additions & 22 deletions src/Ports/Ports/Raze.cs
Original file line number Diff line number Diff line change
Expand Up @@ -233,22 +233,23 @@ private void GetDukeArgs(StringBuilder sb, DukeGame game, IAddon addon)
}


if (dCamp.Type is AddonTypeEnum.TC)
if (dCamp.MainCon is not null)
{
sb.Append($@" {AddFileParam}""{Path.Combine(game.CampaignsFolderPath, dCamp.FileName)}""");
sb.Append($@" {MainConParam}""{dCamp.MainCon}""");
}

if (dCamp.MainCon is not null)
if (dCamp.AdditionalCons?.Count > 0)
{
foreach (var con in dCamp.AdditionalCons)
{
sb.Append($@" {MainConParam}""{dCamp.MainCon}""");
sb.Append($@" {AddConParam}""{con}""");
}
}

if (dCamp.AdditionalCons?.Count > 0)
{
foreach (var con in dCamp.AdditionalCons)
{
sb.Append($@" {AddConParam}""{con}""");
}
}

if (dCamp.Type is AddonTypeEnum.TC)
{
sb.Append($@" {AddFileParam}""{Path.Combine(game.CampaignsFolderPath, dCamp.FileName)}""");
}
else if (dCamp.Type is AddonTypeEnum.Map)
{
Expand Down Expand Up @@ -343,22 +344,23 @@ private void GetRedneckArgs(StringBuilder sb, RedneckGame game, IAddon addon)
}


if (rCamp.Type is AddonTypeEnum.TC)
if (rCamp.MainCon is not null)
{
sb.Append($@" {AddFileParam}""{Path.Combine(game.CampaignsFolderPath, rCamp.FileName)}""");
sb.Append($@" {MainConParam}""{rCamp.MainCon}""");
}

if (rCamp.MainCon is not null)
if (rCamp.AdditionalCons?.Count > 0)
{
foreach (var con in rCamp.AdditionalCons)
{
sb.Append($@" {MainConParam}""{rCamp.MainCon}""");
sb.Append($@" {AddConParam}""{con}""");
}
}

if (rCamp.AdditionalCons?.Count > 0)
{
foreach (var con in rCamp.AdditionalCons)
{
sb.Append($@" {AddConParam}""{con}""");
}
}

if (rCamp.Type is AddonTypeEnum.TC)
{
sb.Append($@" {AddFileParam}""{Path.Combine(game.CampaignsFolderPath, rCamp.FileName)}""");
}
else if (rCamp.Type is AddonTypeEnum.Map)
{
Expand Down
4 changes: 2 additions & 2 deletions src/Tests/CmdArguments/DukeCmdArgumentsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ public void RazeTCTest()
Raze raze = new();

var args = raze.GetStartGameArgs(_dukeGame, _dukeTC, [], true, true);
var expected = @$" -quick -nosetup -savedir ""{Directory.GetCurrentDirectory()}\Data\Ports\Raze\Save\duke-tc"" -def ""TC.DEF"" -adddef ""TC1.DEF"" -adddef ""TC2.DEF"" -addon 3 -file ""{Directory.GetCurrentDirectory()}\Data\Duke3D\Campaigns\duke_tc.zip"" -con ""TC.CON"" -addcon ""TC1.CON"" -addcon ""TC2.CON""";
var expected = @$" -quick -nosetup -savedir ""{Directory.GetCurrentDirectory()}\Data\Ports\Raze\Save\duke-tc"" -def ""TC.DEF"" -adddef ""TC1.DEF"" -adddef ""TC2.DEF"" -addon 3 -con ""TC.CON"" -addcon ""TC1.CON"" -addcon ""TC2.CON"" -file ""{Directory.GetCurrentDirectory()}\Data\Duke3D\Campaigns\duke_tc.zip""";

if (OperatingSystem.IsLinux())
{
Expand Down Expand Up @@ -355,7 +355,7 @@ public void EdukeTCTest()
EDuke32 eduke32 = new();

var args = eduke32.GetStartGameArgs(_dukeGame, _dukeTC, [], true, true);
var expected = @$" -quick -nosetup -usecwd -cachesize 262144 -h ""TC.DEF"" -mh ""TC1.DEF"" -mh ""TC2.DEF"" -j ""D:\Games\Duke3D"" -addon 3 -g ""{Directory.GetCurrentDirectory()}\Data\Duke3D\Campaigns\duke_tc.zip"" -x ""TC.CON"" -mx ""TC1.CON"" -mx ""TC2.CON""";
var expected = @$" -quick -nosetup -usecwd -cachesize 262144 -h ""TC.DEF"" -mh ""TC1.DEF"" -mh ""TC2.DEF"" -j ""D:\Games\Duke3D"" -addon 3 -x ""TC.CON"" -mx ""TC1.CON"" -mx ""TC2.CON"" -g ""{Directory.GetCurrentDirectory()}\Data\Duke3D\Campaigns\duke_tc.zip""";

if (OperatingSystem.IsLinux())
{
Expand Down

0 comments on commit 56a5a80

Please sign in to comment.