summaryrefslogtreecommitdiff
path: root/src/SMAPI.Toolkit
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2022-01-15 20:39:32 -0500
committerJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2022-01-15 20:39:32 -0500
commit6f05580191e27bdf876d75a967a3238947d5a091 (patch)
treeb0ab87449c94e0f4b8f7fea3fc018f2714eab93a /src/SMAPI.Toolkit
parentd029dd652fcb7390d756d92803da2dbc91f8b0de (diff)
downloadSMAPI-6f05580191e27bdf876d75a967a3238947d5a091.tar.gz
SMAPI-6f05580191e27bdf876d75a967a3238947d5a091.tar.bz2
SMAPI-6f05580191e27bdf876d75a967a3238947d5a091.zip
add detection for Xbox app game folders
Diffstat (limited to 'src/SMAPI.Toolkit')
-rw-r--r--src/SMAPI.Toolkit/Framework/GameScanning/GameScanner.cs11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/SMAPI.Toolkit/Framework/GameScanning/GameScanner.cs b/src/SMAPI.Toolkit/Framework/GameScanning/GameScanner.cs
index 37e4f263..8d4198de 100644
--- a/src/SMAPI.Toolkit/Framework/GameScanning/GameScanner.cs
+++ b/src/SMAPI.Toolkit/Framework/GameScanning/GameScanner.cs
@@ -157,7 +157,7 @@ namespace StardewModdingAPI.Toolkit.Framework.GameScanning
yield return Path.Combine(steamPath.Replace('/', '\\'), @"steamapps\common\Stardew Valley");
#endif
- // default paths
+ // default GOG/Steam paths
foreach (string programFiles in new[] { @"C:\Program Files", @"C:\Program Files (x86)" })
{
yield return $@"{programFiles}\GalaxyClient\Games\Stardew Valley";
@@ -165,6 +165,15 @@ namespace StardewModdingAPI.Toolkit.Framework.GameScanning
yield return $@"{programFiles}\GOG Games\Stardew Valley";
yield return $@"{programFiles}\Steam\steamapps\common\Stardew Valley";
}
+
+ // default Xbox app paths
+ // The Xbox app saves the install path to the registry, but we can't use it
+ // here since it saves the internal readonly path (like C:\Program Files\WindowsApps\Mutable\<package ID>)
+ // instead of the mods-enabled path(like C:\Program Files\ModifiableWindowsApps\Stardew Valley).
+ // Fortunately we can cheat a bit: players can customize the install drive, but they can't
+ // change the install path on the drive.
+ for (char driveLetter = 'C'; driveLetter <= 'H'; driveLetter++)
+ yield return $@"{driveLetter}:\Program Files\ModifiableWindowsApps\Stardew Valley";
}
break;