aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Windows64/Windows64_Minecraft.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.Client/Windows64/Windows64_Minecraft.cpp')
-rw-r--r--Minecraft.Client/Windows64/Windows64_Minecraft.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/Minecraft.Client/Windows64/Windows64_Minecraft.cpp b/Minecraft.Client/Windows64/Windows64_Minecraft.cpp
index 931e7f17..42fb2d44 100644
--- a/Minecraft.Client/Windows64/Windows64_Minecraft.cpp
+++ b/Minecraft.Client/Windows64/Windows64_Minecraft.cpp
@@ -716,6 +716,26 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
+
+ WCHAR exePath[MAX_PATH] = { 0 };
+ GetModuleFileNameW(NULL, exePath, MAX_PATH);
+ WCHAR* lastSlash = wcsrchr(exePath, L'\\');
+ if (lastSlash) {
+ *lastSlash = L'\0';
+
+ WCHAR devCheckPath[MAX_PATH] = { 0 };
+ swprintf_s(devCheckPath, MAX_PATH, L"%s\\..\\..\\Minecraft.Client\\Minecraft.Client.vcxproj", exePath);
+
+ if (GetFileAttributesW(devCheckPath) != INVALID_FILE_ATTRIBUTES) {
+ WCHAR projectPath[MAX_PATH] = { 0 };
+ swprintf_s(projectPath, MAX_PATH, L"%s\\..\\..\\Minecraft.Client", exePath);
+ SetCurrentDirectoryW(projectPath);
+ }
+ else {
+ SetCurrentDirectoryW(exePath);
+ }
+ }
+
// Declare DPI awareness so GetSystemMetrics returns physical pixels
SetProcessDPIAware();
g_iScreenWidth = GetSystemMetrics(SM_CXSCREEN);