+static void LoadCustomArtwork(struct ArtworkListInfo *artwork_info,
+ struct ListNodeInfo **listnode,
+ char *basename)
+{
+ char *filename = getCustomArtworkFilename(basename, artwork_info->type);
+
+#if 0
+ printf("GOT CUSTOM ARTWORK FILE '%s'\n", filename);
+#endif
+
+ if (strcmp(basename, UNDEFINED_FILENAME) == 0)
+ {
+ deleteArtworkListEntry(artwork_info, listnode);
+ return;
+ }
+
+ if (filename == NULL)
+ {
+ Error(ERR_WARN, "cannot find artwork file '%s'", basename);
+ return;
+ }
+
+ replaceArtworkListEntry(artwork_info, listnode, filename);
+}
+
+static void LoadArtworkToList(struct ArtworkListInfo *artwork_info,
+ char *basename, int list_pos)
+{
+ if (artwork_info->artwork_list == NULL ||
+ list_pos >= artwork_info->num_file_list_entries)
+ return;
+
+#if 0
+ printf("loading artwork '%s' ... [%d]\n",
+ basename, getNumNodes(artwork_info->content_list));
+#endif
+
+ LoadCustomArtwork(artwork_info, &artwork_info->artwork_list[list_pos],
+ basename);
+
+#if 0
+ printf("loading artwork '%s' done [%d]\n",
+ basename, getNumNodes(artwork_info->content_list));
+#endif
+}
+
+void ReloadCustomArtworkList(struct ArtworkListInfo *artwork_info)
+{
+ static struct
+ {
+ char *text;
+ boolean do_it;
+ }
+ draw_init[] =
+ {
+ { "", FALSE },
+ { "Loading graphics:", TRUE },
+ { "Loading sounds:", TRUE },
+ { "Loading music:", TRUE }
+ };
+
+ int num_file_list_entries = artwork_info->num_file_list_entries;
+ struct FileInfo *file_list = artwork_info->file_list;
+ int i;
+
+ LoadArtworkConfig(artwork_info);
+
+ if (draw_init[artwork_info->type].do_it)
+ DrawInitText(draw_init[artwork_info->type].text, 120, FC_GREEN);
+
+#if 0
+ printf("DEBUG: reloading %d artwork files ...\n", num_file_list_entries);
+#endif
+
+ for(i=0; i<num_file_list_entries; i++)
+ {
+ if (draw_init[artwork_info->type].do_it)
+ DrawInitText(file_list[i].token, 150, FC_YELLOW);
+
+ LoadArtworkToList(artwork_info, file_list[i].filename, i);
+ }
+
+ draw_init[artwork_info->type].do_it = FALSE;
+
+ /*
+ printf("list size == %d\n", getNumNodes(artwork_info->content_list));
+ */
+
+#if 0
+ dumpList(artwork_info->content_list);
+#endif
+}
+
+void FreeCustomArtworkList(struct ArtworkListInfo *artwork_info)