X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=85832274fba1df988edcb2ce417db38a67392288;hb=bc101e8e3ab8515fcc5fbed3d8bf8c3efc258846;hp=5fc8ccc7953b15faec7cfb47423ec4d0399fc4d1;hpb=4e745044fe35b4b093b1490a6e3da0fe4ee512de;p=rocksndiamonds.git diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 5fc8ccc7..85832274 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -395,13 +395,25 @@ inline static char *getLevelArtworkDir(int type) char *getProgramConfigFilename(char *command_filename_ptr) { - char *command_filename = getStringCopy(command_filename_ptr); + char *command_filename_1 = getStringCopy(command_filename_ptr); // strip trailing executable suffix from command filename - if (strSuffix(command_filename, ".exe")) - command_filename[strlen(command_filename) - 4] = '\0'; + if (strSuffix(command_filename_1, ".exe")) + command_filename_1[strlen(command_filename_1) - 4] = '\0'; - return getStringCat2(command_filename, ".conf"); + char *command_basepath = getBasePath(command_filename_ptr); + char *command_basename = getBaseNameNoSuffix(command_filename_ptr); + char *command_filename_2 = getPath2(command_basepath, command_basename); + + char *config_filename_1 = getStringCat2(command_filename_1, ".conf"); + char *config_filename_2 = getStringCat2(command_filename_2, ".conf"); + + // 1st try: look for config file that exactly matches the binary filename + if (fileExists(config_filename_1)) + return config_filename_1; + + // 2nd try: return config filename that matches binary filename without suffix + return config_filename_2; } char *getTapeFilename(int nr) @@ -3762,7 +3774,7 @@ void LoadLevelSetup_SeriesInfo() LevelStats_setSolved(i, 0); } - checkSeriesInfo(leveldir_current); + checkSeriesInfo(); /* ----------------------------------------------------------------------- */ /* ~/./levelsetup//levelsetup.conf */