X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=4f00449473f8cadcb520d70c9a0ea542c40f4797;hb=e14251b595dcb8586f57ea78a6a52b3bd03ee272;hp=2cafc863a7890881244115576091c962407b5a5a;hpb=8cea50fbd1b74a2bc164a79cbd26bdbb3abd6689;p=rocksndiamonds.git diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 2cafc863..4f004494 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -1,7 +1,7 @@ /*********************************************************** * Artsoft Retro-Game Library * *----------------------------------------------------------* -* (c) 1994-2002 Artsoft Entertainment * +* (c) 1994-2006 Artsoft Entertainment * * Holger Schemel * * Detmolder Strasse 189 * * 33604 Bielefeld * @@ -1176,7 +1176,7 @@ char *getCommonDataDir(void) if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_COMMON_DOCUMENTS, NULL, 0, dir)) && !strEqual(dir, "")) /* empty for Windows 95/98 */ - common_data_dir = getPath2(dir, program.userdata_directory); + common_data_dir = getPath2(dir, program.userdata_subdir); else common_data_dir = options.rw_base_directory; } @@ -1205,18 +1205,20 @@ char *getPersonalDataDir(void) char *getUserGameDataDir(void) { - if (program.userdata_path == NULL) - program.userdata_path = getPath2(getPersonalDataDir(), - program.userdata_subdir); + static char *user_game_data_dir = NULL; - return program.userdata_path; + if (user_game_data_dir == NULL) + user_game_data_dir = getPath2(getPersonalDataDir(), + program.userdata_subdir); + + return user_game_data_dir; } void updateUserGameDataDir() { #if defined(PLATFORM_MACOSX) char *userdata_dir_old = getPath2(getHomeDir(), program.userdata_subdir_unix); - char *userdata_dir_new = getUserGameDataDir(); + char *userdata_dir_new = getUserGameDataDir(); /* do not free() this */ /* convert old Unix style game data directory to Mac OS X style, if needed */ if (fileExists(userdata_dir_old) && !fileExists(userdata_dir_new)) @@ -1233,7 +1235,6 @@ void updateUserGameDataDir() } free(userdata_dir_old); - free(userdata_dir_new); #endif } @@ -2285,14 +2286,12 @@ void LoadLevelInfo() LoadLevelInfoFromLevelDir(&leveldir_first, NULL, options.level_directory); LoadLevelInfoFromLevelDir(&leveldir_first, NULL, getUserLevelDir(NULL)); -#if 1 /* after loading all level set information, clone the level directory tree and remove all level sets without levels (these may still contain artwork to be offered in the setup menu as "custom artwork", and are therefore checked for existing artwork in the function "LoadLevelArtworkInfo()") */ leveldir_first_all = leveldir_first; cloneTree(&leveldir_first, leveldir_first_all, TRUE); -#endif AdjustGraphicsForEMC();