X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fmisc.c;h=757872e8647a8c11d35b36238e3579c74fdc99a0;hb=9091c797c4a3abb34ceb98d80a82ae7310708fbb;hp=3c61d46dd77a1dd033383856ec5371fce1ca61bb;hpb=b13dc8e30a0c07bea53bf168ae6d1017394d3c22;p=rocksndiamonds.git diff --git a/src/libgame/misc.c b/src/libgame/misc.c index 3c61d46d..757872e8 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,32 +1357,39 @@ 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; int num_suffix_list_entries = 0; - int list_pos = -1; + int list_pos = 0; int i, j; 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; j 0) + list_pos++; if (list_pos >= num_file_list_entries) Error(ERR_EXIT, "inconsistant config list information -- please fix"); @@ -1419,9 +1435,10 @@ struct FileInfo *getFileListFromConfigList(struct ConfigInfo *config_list, static void LoadArtworkConfig(struct ArtworkListInfo *artwork_info) { + struct FileInfo *file_list = artwork_info->file_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 +1450,12 @@ static void LoadArtworkConfig(struct ArtworkListInfo *artwork_info) /* always start with reliable default values */ for (i=0; itype].text, 120, FC_GREEN); #if 0 - printf("DEBUG: reloading %d sounds ...\n", num_file_list_entries); + printf("DEBUG: reloading %d artwork files ...\n", num_file_list_entries); #endif for(i=0; itype].do_it) DrawInitText(file_list[i].token, 150, FC_YELLOW); - if (file_list[i].filename) - LoadArtworkToList(artwork_info, file_list[i].filename, i); - else - LoadArtworkToList(artwork_info, file_list[i].default_filename, i); + LoadArtworkToList(artwork_info, file_list[i].filename, i); } draw_init[artwork_info->type].do_it = FALSE;