From 9dedb5a7242471a130da39c6b20576bc082b03b1 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Fri, 16 Sep 2022 23:46:59 +0200 Subject: [PATCH] use full path to ddraw.ini to fix issues with bad working dirs --- src/config.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/config.c b/src/config.c index 215d702..74c35da 100644 --- a/src/config.c +++ b/src/config.c @@ -1060,17 +1060,29 @@ static void cfg_init() } /* set up settings ini */ - strncpy(g_config.ini_path, ".\\ddraw.ini", sizeof(g_config.ini_path) - 1); - if (GetFileAttributes(g_config.ini_path) == INVALID_FILE_ATTRIBUTES) - cfg_create_ini(); + if (strlen(g_config.game_path) > 0) + { + _snprintf(g_config.ini_path, sizeof(g_config.ini_path) - 1, "%sddraw.ini", g_config.game_path); + + if (GetFileAttributes(g_config.ini_path) == INVALID_FILE_ATTRIBUTES) + { + cfg_create_ini(); + } + + if (GetFileAttributes(g_config.ini_path) == INVALID_FILE_ATTRIBUTES) + { + strncpy(g_config.ini_path, ".\\ddraw.ini", sizeof(g_config.ini_path) - 1); + } + } + else + { + strncpy(g_config.ini_path, ".\\ddraw.ini", sizeof(g_config.ini_path) - 1); + } if (GetFileAttributes(g_config.ini_path) == INVALID_FILE_ATTRIBUTES) { - _snprintf(g_config.ini_path, sizeof(g_config.ini_path) - 1, "%sddraw.ini", g_config.game_path); - - if (GetFileAttributes(g_config.ini_path) == INVALID_FILE_ATTRIBUTES) - cfg_create_ini(); + cfg_create_ini(); } }