diff --git a/DepotDownloader/ContentDownloader.cs b/DepotDownloader/ContentDownloader.cs index 30c0c54..b1b1441 100644 --- a/DepotDownloader/ContentDownloader.cs +++ b/DepotDownloader/ContentDownloader.cs @@ -476,7 +476,8 @@ namespace DepotDownloader continue; } - if (depotConfig["osarch"] != KeyValue.Invalid && + if (!Config.DownloadAllArchs && + depotConfig["osarch"] != KeyValue.Invalid && !string.IsNullOrWhiteSpace(depotConfig["osarch"].Value)) { var depotArch = depotConfig["osarch"].Value; diff --git a/DepotDownloader/DownloadConfig.cs b/DepotDownloader/DownloadConfig.cs index 97f2bad..c0d4f6c 100644 --- a/DepotDownloader/DownloadConfig.cs +++ b/DepotDownloader/DownloadConfig.cs @@ -10,6 +10,7 @@ namespace DepotDownloader { public int CellID { get; set; } public bool DownloadAllPlatforms { get; set; } + public bool DownloadAllArchs { get; set; } public bool DownloadAllLanguages { get; set; } public bool DownloadManifestOnly { get; set; } public string InstallDirectory { get; set; } diff --git a/DepotDownloader/Program.cs b/DepotDownloader/Program.cs index b44b79c..569c489 100644 --- a/DepotDownloader/Program.cs +++ b/DepotDownloader/Program.cs @@ -211,6 +211,7 @@ namespace DepotDownloader ContentDownloader.Config.BetaPassword = GetParameter(args, "-betapassword"); ContentDownloader.Config.DownloadAllPlatforms = HasParameter(args, "-all-platforms"); + var os = GetParameter(args, "-os"); if (ContentDownloader.Config.DownloadAllPlatforms && !string.IsNullOrEmpty(os)) @@ -219,8 +220,16 @@ namespace DepotDownloader return 1; } + ContentDownloader.Config.DownloadAllArchs = HasParameter(args, "-all-archs"); + var arch = GetParameter(args, "-osarch"); + if (ContentDownloader.Config.DownloadAllArchs && !string.IsNullOrEmpty(arch)) + { + Console.WriteLine("Error: Cannot specify -osarch when -all-archs is specified."); + return 1; + } + ContentDownloader.Config.DownloadAllLanguages = HasParameter(args, "-all-languages"); var language = GetParameter(args, "-language"); @@ -401,6 +410,7 @@ namespace DepotDownloader Console.WriteLine($" -beta - download from specified branch if available (default: {ContentDownloader.DEFAULT_BRANCH})."); Console.WriteLine(" -betapassword - branch password if applicable."); Console.WriteLine(" -all-platforms - downloads all platform-specific depots when -app is used."); + Console.WriteLine(" -all-archs - download all architecture-specific depots when -app is used."); Console.WriteLine(" -os - the operating system for which to download the game (windows, macos or linux, default: OS the program is currently running on)"); Console.WriteLine(" -osarch - the architecture for which to download the game (32 or 64, default: the host's architecture)"); Console.WriteLine(" -all-languages - download all language-specific depots when -app is used."); diff --git a/README.md b/README.md index 67de48b..4a0740d 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,7 @@ Parameter | Description `-all-platforms` | downloads all platform-specific depots when `-app` is used. `-os ` | the operating system for which to download the game (windows, macos or linux, default: OS the program is currently running on) `-osarch ` | the architecture for which to download the game (32 or 64, default: the host's architecture) +`-all-archs` | download all architecture-specific depots when `-app` is used. `-all-languages` | download all language-specific depots when `-app` is used. `-language ` | the language for which to download the game (default: english) `-lowviolence` | download low violence depots when `-app` is used.