X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fimage.c;h=a65eb20dbb800368485d57def0dddd051236c328;hb=b13dc8e30a0c07bea53bf168ae6d1017394d3c22;hp=73e077340e9a35429480a570692146b5a2be0127;hpb=22473d4140e896b64767e3349ef308f69b7668b9;p=rocksndiamonds.git diff --git a/src/libgame/image.c b/src/libgame/image.c index 73e07734..a65eb20d 100644 --- a/src/libgame/image.c +++ b/src/libgame/image.c @@ -695,19 +695,35 @@ static void FreeImage(void *ptr) free(image); } -void InitImageList(struct ArtworkConfigInfo *config_list, int num_list_entries) +struct FileInfo *getCurrentImageList() { - if (image_info == NULL) - image_info = checked_calloc(sizeof(struct ArtworkListInfo)); + return image_info->file_list; +} + +void InitImageList(struct ConfigInfo *config_list, char *config_suffix_list[], + int num_file_list_entries) +{ + int i; - if (image_info->artwork_list == NULL) - image_info->artwork_list = - checked_calloc(num_list_entries * sizeof(ImageInfo *)); + image_info = checked_calloc(sizeof(struct ArtworkListInfo)); image_info->type = ARTWORK_TYPE_GRAPHICS; - image_info->num_list_entries = num_list_entries; - image_info->config_list = config_list; - image_info->file_list = NULL; + + image_info->num_file_list_entries = num_file_list_entries; + image_info->num_suffix_list_entries = 0; + for (i=0; config_suffix_list[i] != NULL; i++) + image_info->num_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->artwork_list = + checked_calloc(num_file_list_entries * sizeof(ImageInfo *)); + + image_info->content_list = NULL; + image_info->load_artwork = Load_PCX; image_info->free_artwork = FreeImage; } @@ -720,3 +736,8 @@ void ReloadCustomImages() ReloadCustomArtworkList(image_info); } + +void FreeAllImages() +{ + FreeCustomArtworkList(image_info); +}