Added working directory fix from R1Q2.

This commit is contained in:
Knightmare66 2020-04-18 22:01:14 -04:00
parent e96adb36a9
commit 2788421eb0
2 changed files with 39 additions and 2 deletions

View file

@ -2311,7 +2311,6 @@ void FS_InitFilesystem (void)
// basedir <path> // basedir <path>
// allows the game to run from outside the data tree // allows the game to run from outside the data tree
fs_basedir = Cvar_Get ("basedir", ".", CVAR_NOSET); fs_basedir = Cvar_Get ("basedir", ".", CVAR_NOSET);
// fs_basedir = Cvar_Get ("basedir", (char *)Sys_ExeDir(), CVAR_NOSET);
// cddir <path> // cddir <path>
// Logically concatenates the cddir after the basedir for // Logically concatenates the cddir after the basedir for

View file

@ -1683,7 +1683,7 @@ Init_ExeDir
*/ */
static void Init_ExeDir (void) static void Init_ExeDir (void)
{ {
#if 0 #if 1
memset(exe_dir, 0, sizeof(exe_dir)); memset(exe_dir, 0, sizeof(exe_dir));
Q_snprintfz (exe_dir, sizeof(exe_dir), "."); Q_snprintfz (exe_dir, sizeof(exe_dir), ".");
#else #else
@ -1711,6 +1711,41 @@ static void Init_ExeDir (void)
#endif #endif
} }
/*
==================
FixWorkingDirectory
==================
*/
void FixWorkingDirectory (void)
{
int i;
char *p;
char curDir[MAX_PATH];
GetModuleFileName (NULL, curDir, sizeof(curDir)-1);
p = strrchr (curDir, '\\');
p[0] = 0;
for (i = 1; i < argc; i++)
{
if (!strcmp (argv[i], "-nopathcheck"))
goto skipPathCheck;
if (!strcmp (argv[i], "-nocwdcheck"))
return;
}
if (strlen(curDir) > (MAX_OSPATH - MAX_QPATH))
Sys_Error ("Current path is too long. Please move your Quake II installation to a shorter path.");
skipPathCheck:
SetCurrentDirectory (curDir);
}
/* /*
================== ==================
Detect_WinNT5orLater Detect_WinNT5orLater
@ -1844,6 +1879,9 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin
Sys_SetHighDPIMode (); // setup DPI awareness Sys_SetHighDPIMode (); // setup DPI awareness
// r1ch: always change to our directory (ugh)
FixWorkingDirectory ();
Init_ExeDir (); // Knightmare added Init_ExeDir (); // Knightmare added
#ifndef NEW_DED_CONSOLE #ifndef NEW_DED_CONSOLE