diff --git a/OpenRA.Game/ModContent.cs b/OpenRA.Game/ModContent.cs index acb8f65d5d..18bd87f655 100644 --- a/OpenRA.Game/ModContent.cs +++ b/OpenRA.Game/ModContent.cs @@ -21,7 +21,7 @@ namespace OpenRA { public readonly string Title; public readonly string[] TestFiles = { }; - public readonly string[] Discs = { }; + public readonly string[] Sources = { }; public readonly bool Required; public readonly string Download; @@ -37,14 +37,14 @@ namespace OpenRA } } - public class ModDisc + public class ModSource { public readonly string Title; public readonly Dictionary IDFiles; [FieldLoader.Ignore] public readonly List Install; - public ModDisc(MiniYaml yaml) + public ModSource(MiniYaml yaml) { Title = yaml.Value; var installNode = yaml.Nodes.FirstOrDefault(n => n.Key == "Install"); @@ -101,18 +101,18 @@ namespace OpenRA return downloads; } - [FieldLoader.LoadUsing("LoadDiscs")] - public readonly Dictionary Discs; + [FieldLoader.LoadUsing("LoadSources")] + public readonly Dictionary Sources; - static object LoadDiscs(MiniYaml yaml) + static object LoadSources(MiniYaml yaml) { - var discs = new Dictionary(); - var discNode = yaml.Nodes.FirstOrDefault(n => n.Key == "Discs"); - if (discNode != null) - foreach (var node in discNode.Value.Nodes) - discs.Add(node.Key, new ModDisc(node.Value)); + var sources = new Dictionary(); + var sourceNode = yaml.Nodes.FirstOrDefault(n => n.Key == "Sources"); + if (sourceNode != null) + foreach (var node in sourceNode.Value.Nodes) + sources.Add(node.Key, new ModSource(node.Value)); - return discs; + return sources; } } } diff --git a/OpenRA.Mods.Common/Widgets/Logic/Installation/InstallFromDiscLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Installation/InstallFromDiscLogic.cs index 1a5b152b68..d9f6c365a4 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Installation/InstallFromDiscLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Installation/InstallFromDiscLogic.cs @@ -104,7 +104,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic .Where(v => v.DriveType == DriveType.CDRom && v.IsReady) .Select(v => v.RootDirectory.FullName); - foreach (var kv in content.Discs) + foreach (var kv in content.Sources) { message = "Searching for " + kv.Value.Title; @@ -113,7 +113,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic if (PathIsDiscMount(volume, kv.Value)) { var packages = content.Packages.Values - .Where(p => p.Discs.Contains(kv.Key) && !p.IsInstalled()) + .Where(p => p.Sources.Contains(kv.Key) && !p.IsInstalled()) .Select(p => p.Title); // Ignore disc if content is already installed @@ -133,8 +133,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic var discTitles = content.Packages.Values .Where(p => !p.IsInstalled()) - .SelectMany(p => p.Discs) - .Select(d => content.Discs[d].Title) + .SelectMany(p => p.Sources) + .Select(d => content.Sources[d].Title) .Distinct(); Game.RunAfterTick(() => @@ -145,7 +145,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic }).Start(); } - void InstallFromDisc(string path, ModContent.ModDisc disc) + void InstallFromDisc(string path, ModContent.ModSource modSource) { var message = ""; ShowProgressbar("Installing Content", () => message); @@ -157,7 +157,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic try { - foreach (var i in disc.Install) + foreach (var i in modSource.Install) { switch (i.Key) { @@ -236,7 +236,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic Game.RunAfterTick(() => { ShowMessage("Installation Failed", "Refer to install.log in the logs directory for details."); - ShowBackRetry(() => InstallFromDisc(path, disc)); + ShowBackRetry(() => InstallFromDisc(path, modSource)); }); } }).Start(); @@ -351,11 +351,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic } } - bool PathIsDiscMount(string path, ModContent.ModDisc disc) + bool PathIsDiscMount(string path, ModContent.ModSource source) { try { - foreach (var kv in disc.IDFiles) + foreach (var kv in source.IDFiles) { var filePath = Path.Combine(path, kv.Key); if (!File.Exists(filePath)) diff --git a/OpenRA.Mods.Common/Widgets/Logic/Installation/ModContentLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Installation/ModContentLogic.cs index ea643df81a..32ca8134e8 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Installation/ModContentLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Installation/ModContentLogic.cs @@ -86,12 +86,12 @@ namespace OpenRA.Mods.Common.Widgets.Logic var requiredWidget = container.Get("REQUIRED"); requiredWidget.IsVisible = () => p.Value.Required; - var discWidget = container.Get("DISC"); - var discs = p.Value.Discs.Select(s => content.Discs[s].Title).Distinct(); - var discList = discs.JoinWith("\n"); - var isDiscAvailable = discs.Any(); - discWidget.GetTooltipText = () => discList; - discWidget.IsVisible = () => isDiscAvailable; + var sourceWidget = container.Get("DISC"); + var sources = p.Value.Sources.Select(s => content.Sources[s].Title).Distinct(); + var sourceList = sources.JoinWith("\n"); + var isSourceAvailable = sources.Any(); + sourceWidget.GetTooltipText = () => sourceList; + sourceWidget.IsVisible = () => isSourceAvailable; var installed = p.Value.IsInstalled(); var downloadButton = container.Get("DOWNLOAD"); @@ -115,13 +115,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic var requiresDiscWidget = container.Get("REQUIRES_DISC"); requiresDiscWidget.IsVisible = () => !installed && !downloadEnabled; - if (!isDiscAvailable) + if (!isSourceAvailable) requiresDiscWidget.GetText = () => "Manual Install"; scrollPanel.AddChild(container); } - discAvailable = content.Packages.Values.Any(p => p.Discs.Any() && !p.IsInstalled()); + discAvailable = content.Packages.Values.Any(p => p.Sources.Any() && !p.IsInstalled()); } } } diff --git a/mods/cnc/mod.yaml b/mods/cnc/mod.yaml index 721e30dd2d..8a9d4fcc51 100644 --- a/mods/cnc/mod.yaml +++ b/mods/cnc/mod.yaml @@ -228,22 +228,22 @@ ModContent: Packages: base: Base Game Files TestFiles: ^Content/cnc/conquer.mix, ^Content/cnc/desert.mix, ^Content/cnc/sounds.mix, ^Content/cnc/speech.mix, ^Content/cnc/temperat.mix, ^Content/cnc/tempicnh.mix, ^Content/cnc/winter.mix - Discs: gdi95, gdi95-linux, nod95, nod95-linux + Sources: gdi95, gdi95-linux, nod95, nod95-linux Required: true Download: basefiles music: Base Game Music TestFiles: ^Content/cnc/scores.mix - Discs: gdi95, gdi95-linux, nod95, nod95-linux + Sources: gdi95, gdi95-linux, nod95, nod95-linux Download: music movies-gdi: GDI Campaign Briefings TestFiles: ^Content/cnc/movies-gdi.mix - Discs: gdi95, gdi95-linux + Sources: gdi95, gdi95-linux movies-nod: Nod Campaign Briefings TestFiles: ^Content/cnc/movies-nod.mix - Discs: nod95, nod95-linux + Sources: nod95, nod95-linux music-covertops: Covert Operations Music TestFiles: ^Content/cnc/scores-covertops.mix - Discs: covertops, covertops-linux + Sources: covertops, covertops-linux Downloads: basefiles: Base Freeware Content MirrorList: http://www.openra.net/packages/cnc-mirrors.txt @@ -261,7 +261,7 @@ ModContent: MirrorList: http://www.openra.net/packages/cnc-music-mirrors.txt Extract: ^Content/cnc/scores.mix: scores.mix - Discs: + Sources: gdi95: C&C Gold (GDI Disc, English) IDFiles: DISK.WAV: 8bef9a6687c0fe0afd57c6561df58fa6e64f145d diff --git a/mods/d2k/mod.yaml b/mods/d2k/mod.yaml index 2047101b7e..f719b87328 100644 --- a/mods/d2k/mod.yaml +++ b/mods/d2k/mod.yaml @@ -207,15 +207,15 @@ ModContent: Packages: base: Base Game Files TestFiles: ^Content/d2k/BLOXBASE.R8, ^Content/d2k/BLOXBAT.R8, ^Content/d2k/BLOXBGBS.R8, ^Content/d2k/BLOXICE.R8, ^Content/d2k/BLOXTREE.R8, ^Content/d2k/BLOXWAST.R8, ^Content/d2k/DATA.R8, ^Content/d2k/SOUND.RS, ^Content/d2k/PALETTE.BIN - Discs: d2k, d2k-linux + Sources: d2k, d2k-linux Required: true Download: basefiles music: Game Music TestFiles: ^Content/d2k/Music/AMBUSH.AUD - Discs: d2k, d2k-linux + Sources: d2k, d2k-linux movies: Campaign Briefings TestFiles: ^Content/d2k/Movies/A_BR01_E.VQA - Discs: d2k, d2k-linux + Sources: d2k, d2k-linux Downloads: basefiles: Base Content MirrorList: http://www.openra.net/packages/d2k-103-mirrors.txt @@ -481,7 +481,7 @@ ModContent: ^Content/d2k/GAMESFX/O_VSEL1.AUD: GAMESFX/O_VSEL1.AUD ^Content/d2k/GAMESFX/O_VSEL2.AUD: GAMESFX/O_VSEL2.AUD ^Content/d2k/GAMESFX/O_VSEL3.AUD: GAMESFX/O_VSEL3.AUD - Discs: + Sources: d2k: Dune 2000 (English) IDFiles: MUSIC/AMBUSH.AUD: bd5926a56a83bc0e49f96037e1f909014ac0772a diff --git a/mods/ra/mod.yaml b/mods/ra/mod.yaml index 80301489a5..340e4040a8 100644 --- a/mods/ra/mod.yaml +++ b/mods/ra/mod.yaml @@ -233,22 +233,22 @@ ModContent: Packages: base: Base Game Files TestFiles: ^Content/ra/allies.mix, ^Content/ra/conquer.mix, ^Content/ra/interior.mix, ^Content/ra/redalert.mix, ^Content/ra/russian.mix, ^Content/ra/snow.mix, ^Content/ra/sounds.mix, ^Content/ra/temperat.mix - Discs: allied, allied-linux, soviet, soviet-linux + Sources: allied, allied-linux, soviet, soviet-linux Required: true Download: basefiles music: Base Game Music TestFiles: ^Content/ra/scores.mix - Discs: allied, allied-linux, soviet, soviet-linux + Sources: allied, allied-linux, soviet, soviet-linux Download: music movies-allied: Allied Campaign Briefings TestFiles: ^Content/ra/movies1.mix - Discs: allied, allied-linux + Sources: allied, allied-linux movies-soviet: Soviet Campaign Briefings TestFiles: ^Content/ra/movies2.mix - Discs: soviet, soviet-linux + Sources: soviet, soviet-linux music-covertops: Counterstrike Music TestFiles: ^Content/ra/scores-counterstrike.mix - Discs: counterstrike, counterstrike-linux + Sources: counterstrike, counterstrike-linux Downloads: basefiles: Base Freeware Content MirrorList: http://www.openra.net/packages/ra-mirrors.txt @@ -266,7 +266,7 @@ ModContent: MirrorList: http://www.openra.net/packages/ra-music-mirrors.txt Extract: ^Content/ra/scores.mix: scores.mix - Discs: + Sources: allied: Red Alert 95 (Allied Disc, English) IDFiles: eahelp.GID: 13a8a4a1e7d9d6d893c38df5a39262c4689aeba5 diff --git a/mods/ts/mod.yaml b/mods/ts/mod.yaml index cc147807ba..1913a29391 100644 --- a/mods/ts/mod.yaml +++ b/mods/ts/mod.yaml @@ -266,12 +266,12 @@ ModContent: Packages: base: Base Game Files TestFiles: ^Content/ts/cache.mix, ^Content/ts/conquer.mix, ^Content/ts/isosnow.mix, ^Content/ts/isotemp.mix, ^Content/ts/local.mix, ^Content/ts/sidec01.mix, ^Content/ts/sidec02.mix, ^Content/ts/sno.mix, ^Content/ts/snow.mix, ^Content/ts/sounds.mix, ^Content/ts/speech01.mix, ^Content/ts/tem.mix, ^Content/ts/temperat.mix - Discs: tibsun, tibsun-linux + Sources: tibsun, tibsun-linux Required: true Download: basefiles music: Base Game Music TestFiles: ^Content/ts/scores.mix - Discs: tibsun, tibsun-linux + Sources: tibsun, tibsun-linux Download: music Downloads: basefiles: Base Freeware Content @@ -295,7 +295,7 @@ ModContent: MirrorList: http://www.openra.net/packages/ts-music-mirrors.txt Extract: ^Content/ts/scores.mix: scores.mix - Discs: + Sources: tibsun: Tiberan Sun (GDI or Nod Disc, English) IDFiles: README.TXT: 45745c4a0c888317ec900208a426472779c42bf7