X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Flibgame%2Fmisc.c;h=498a96e89231d3c9de9fa47ad680ba1d948a6e67;hb=68a47a5b92e7c62a8c8a06391e4f9b8d53eeb82f;hp=3c61d46dd77a1dd033383856ec5371fce1ca61bb;hpb=b13dc8e30a0c07bea53bf168ae6d1017394d3c22;p=rocksndiamonds.git diff --git a/src/libgame/misc.c b/src/libgame/misc.c index 3c61d46d..498a96e8 100644 --- a/src/libgame/misc.c +++ b/src/libgame/misc.c @@ -403,6 +403,14 @@ char *getPath3(char *path1, char *path2, char *path3) return complete_path; } +static char *getStringCat2(char *s1, char *s2) +{ + char *complete_string = checked_malloc(strlen(s1) + strlen(s2) + 1); + + sprintf(complete_string, "%s%s", s1, s2); + return complete_string; +} + char *getStringCopy(char *s) { char *s_copy; @@ -1349,7 +1357,7 @@ boolean FileIsArtworkType(char *basename, int type) /* ========================================================================= */ struct FileInfo *getFileListFromConfigList(struct ConfigInfo *config_list, - char *suffix_list[], + struct ConfigInfo *suffix_list, int num_file_list_entries) { struct FileInfo *file_list; @@ -1359,22 +1367,29 @@ struct FileInfo *getFileListFromConfigList(struct ConfigInfo *config_list, file_list = checked_calloc(num_file_list_entries * sizeof(struct FileInfo)); - for (i=0; suffix_list[i] != NULL; i++) + for (i=0; suffix_list[i].token != NULL; i++) num_suffix_list_entries++; - if (num_suffix_list_entries > 0) + /* always start with reliable default values */ + for (i=0; i 0) { - file_list[i].default_parameter = - checked_calloc(num_suffix_list_entries * sizeof(int)); - file_list[i].parameter = - checked_calloc(num_suffix_list_entries * sizeof(int)); + int parameter_array_size = num_suffix_list_entries * sizeof(int); + + file_list[i].default_parameter = checked_calloc(parameter_array_size); + file_list[i].parameter = checked_calloc(parameter_array_size); for (j=0; jfile_list; + struct ConfigInfo *suffix_list = artwork_info->suffix_list; int num_file_list_entries = artwork_info->num_file_list_entries; int num_suffix_list_entries = artwork_info->num_suffix_list_entries; - struct FileInfo *file_list = artwork_info->file_list; char *filename = getCustomArtworkConfigFilename(artwork_info->type); struct SetupFileList *setup_file_list; int i, j; @@ -1433,12 +1449,12 @@ static void LoadArtworkConfig(struct ArtworkListInfo *artwork_info) /* always start with reliable default values */ for (i=0; i