int num_references;
Bitmap *bitmap;
+ boolean contains_small_images;
};
typedef struct ImageInfo ImageInfo;
img_info->source_filename = getStringCopy(filename);
+ img_info->contains_small_images = FALSE;
+
return img_info;
}
&image_info->dynamic_file_list[list_pos]);
}
+static ImageInfo *getImageInfoEntryFromImageID(int pos)
+{
+ int num_list_entries = image_info->num_file_list_entries;
+ int list_pos = (pos < num_list_entries ? pos : pos - num_list_entries);
+ ImageInfo **img_info =
+ (ImageInfo **)(pos < num_list_entries ? image_info->artwork_list :
+ image_info->dynamic_artwork_list);
+
+ return img_info[list_pos];
+}
+
Bitmap *getBitmapFromImageID(int pos)
{
+#if 0
int num_list_entries = image_info->num_file_list_entries;
int list_pos = (pos < num_list_entries ? pos : pos - num_list_entries);
ImageInfo **img_info =
image_info->dynamic_artwork_list);
return (img_info[list_pos] != NULL ? img_info[list_pos]->bitmap : NULL);
+#else
+ ImageInfo *img_info = getImageInfoEntryFromImageID(pos);
+
+ return (img_info != NULL ? img_info->bitmap : NULL);
+#endif
}
char *getTokenFromImageID(int graphic)
void InitImageList(struct ConfigInfo *config_list, int num_file_list_entries,
struct ConfigInfo *config_suffix_list,
- char **base_prefixes,
- char **ext1_suffixes,
- char **ext2_suffixes)
+ char **base_prefixes, char **ext1_suffixes,
+ char **ext2_suffixes, char **ext3_suffixes,
+ char **ignore_tokens)
{
int i;
image_info->num_dynamic_file_list_entries = 0;
image_info->file_list =
- getFileListFromConfigList(config_list, config_suffix_list,
+ getFileListFromConfigList(config_list, config_suffix_list, ignore_tokens,
num_file_list_entries);
image_info->dynamic_file_list = NULL;
for (i=0; ext2_suffixes[i] != NULL; i++)
image_info->num_ext2_suffixes++;
+ image_info->num_ext3_suffixes = 0;
+ for (i=0; ext3_suffixes[i] != NULL; i++)
+ image_info->num_ext3_suffixes++;
+
+ image_info->num_ignore_tokens = 0;
+ for (i=0; ignore_tokens[i] != NULL; i++)
+ image_info->num_ignore_tokens++;
+
image_info->base_prefixes = base_prefixes;
image_info->ext1_suffixes = ext1_suffixes;
image_info->ext2_suffixes = ext2_suffixes;
+ image_info->ext3_suffixes = ext3_suffixes;
+ image_info->ignore_tokens = ignore_tokens;
image_info->num_property_mapping_entries = 0;
image_info->free_artwork = FreeImage;
}
-void dumpImages()
-{
- struct ListNode *node;
-
- if (image_info->content_list == NULL)
- return;
-
- for (node = image_info->content_list; node != NULL; node = node->next)
- {
- ImageInfo *img_info = (ImageInfo *)node->content;
-
- printf("---> '%s' [%d]\n",
- img_info->source_filename,
- img_info->num_references);
- }
-}
-
void ReloadCustomImages()
{
#if 0
LoadArtworkConfig(image_info);
ReloadCustomArtworkList(image_info);
+}
- dumpImages();
+void CreateImageWithSmallImages(int pos)
+{
+ ImageInfo *img_info = getImageInfoEntryFromImageID(pos);
+
+ if (img_info == NULL || img_info->contains_small_images)
+ return;
+
+ CreateBitmapWithSmallBitmaps(img_info->bitmap);
+
+ img_info->contains_small_images = TRUE;
+
+#if 0
+ printf("CreateImageWithSmallImages: '%s' done\n", img_info->source_filename);
+#endif
}
void FreeAllImages()