Browse Source

winrt: Add EffectiveLocation support for newer Win10 releases

Ethan Lee 4 years ago
parent
commit
a7d91ebaa5
1 changed files with 6 additions and 1 deletions
  1. 6 1
      src/filesystem/winrt/SDL_sysfilesystem.cpp

+ 6 - 1
src/filesystem/winrt/SDL_sysfilesystem.cpp

@@ -48,7 +48,12 @@ SDL_WinRTGetFSPathUNICODE(SDL_WinRT_Path pathType)
         {
             static wstring path;
             if (path.empty()) {
-                path = Windows::ApplicationModel::Package::Current->InstalledLocation->Path->Data();
+                /* Windows 1903 supports mods, via the EffectiveLocation API */
+                if (Windows::Foundation::Metadata::ApiInformation::IsApiContractPresent("Windows.Foundation.UniversalApiContract", 8, 0)) {
+                    path = Windows::ApplicationModel::Package::Current->EffectiveLocation->Path->Data();
+                } else {
+                    path = Windows::ApplicationModel::Package::Current->InstalledLocation->Path->Data();
+                }
             }
             return path.c_str();
         }