X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fimage.c;h=b2ed4d7e2727ae3ba2b7d6b318ef9327506ce362;hb=7b47ce7ba0f673f0de5130daf5726104d0b38902;hp=a649e40abb864e45c5a4e2136a2ffdbf920b3f3d;hpb=8e0c58b2a77c271b485e403cc6edd6ba6e0125cc;p=rocksndiamonds.git diff --git a/src/libgame/image.c b/src/libgame/image.c index a649e40a..b2ed4d7e 100644 --- a/src/libgame/image.c +++ b/src/libgame/image.c @@ -705,7 +705,7 @@ Bitmap *getBitmapFromImageID(int graphic) { ImageInfo **img_info = (ImageInfo **)image_info->artwork_list; - return img_info[graphic]->bitmap; + return (img_info[graphic] != NULL ? img_info[graphic]->bitmap : NULL); } char *getTokenFromImageID(int graphic) @@ -720,9 +720,10 @@ char *getImageConfigFilename() return getCustomArtworkConfigFilename(image_info->type); } -void InitImageList(struct ConfigInfo *config_list, +void InitImageList(struct ConfigInfo *config_list, int num_file_list_entries, struct ConfigInfo *config_suffix_list, - int num_file_list_entries) + struct ConfigInfo *ext1_suffix_list, + struct ConfigInfo *ext2_suffix_list) { int i; @@ -731,14 +732,26 @@ void InitImageList(struct ConfigInfo *config_list, image_info->type = ARTWORK_TYPE_GRAPHICS; image_info->num_file_list_entries = num_file_list_entries; + image_info->num_suffix_list_entries = 0; for (i=0; config_suffix_list[i].token != NULL; i++) image_info->num_suffix_list_entries++; + image_info->num_ext1_suffix_list_entries = 0; + for (i=0; ext1_suffix_list[i].token != NULL; i++) + image_info->num_ext1_suffix_list_entries++; + + image_info->num_ext2_suffix_list_entries = 0; + for (i=0; ext2_suffix_list[i].token != NULL; i++) + image_info->num_ext2_suffix_list_entries++; + image_info->file_list = getFileListFromConfigList(config_list, config_suffix_list, num_file_list_entries); image_info->suffix_list = config_suffix_list; + image_info->ext1_suffix_list = ext1_suffix_list; + image_info->ext2_suffix_list = ext2_suffix_list; + image_info->custom_setup_list = NULL; image_info->artwork_list = checked_calloc(num_file_list_entries * sizeof(ImageInfo *)); @@ -755,6 +768,7 @@ void ReloadCustomImages() printf("DEBUG: reloading images '%s' ...\n", artwork.gfx_current_identifier); #endif + LoadArtworkConfig(image_info); ReloadCustomArtworkList(image_info); }