From 9a9cf7b57a1750d5880444a5cd7907b0c05b0efe Mon Sep 17 00:00:00 2001 From: Nicholas Hastings Date: Mon, 7 Nov 2016 18:58:13 -0500 Subject: [PATCH] Fix downloads for shared depots that provide their own manifests. Before, we could only do shared depots that referred to their parent app, when parent app access was also available. --- DepotDownloader/ContentDownloader.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/DepotDownloader/ContentDownloader.cs b/DepotDownloader/ContentDownloader.cs index 2265a75..ba10ce3 100644 --- a/DepotDownloader/ContentDownloader.cs +++ b/DepotDownloader/ContentDownloader.cs @@ -208,7 +208,10 @@ namespace DepotDownloader if (depotChild == KeyValue.Invalid) return INVALID_MANIFEST_ID; - if (depotChild["depotfromapp"] != KeyValue.Invalid) + // Shared depots can either provide manifests, or leave you relying on their parent app. + // It seems that with the latter, "sharedinstall" will exist (and equals 2 in the one existance I know of). + // Rather than relay on the unknown sharedinstall key, just look for manifests. Test cases: 111710, 346680. + if (depotChild["manifests"] == KeyValue.Invalid && depotChild["depotfromapp"] != KeyValue.Invalid) { uint otherAppId = (uint)depotChild["depotfromapp"].AsInteger(); if (otherAppId == appId)