rnd-20030730-2-src
[rocksndiamonds.git] / src / libgame / image.c
index c841ffed244c9fc66fecc62feda0c463a59120df..95e098e22c578ccf42b14cc161c2fa89fbd3b983 100644 (file)
@@ -699,7 +699,7 @@ int Read_PCX_to_Pixmap(Display *display, Window window, GC gc, char *filename,
 
 
 /* ========================================================================= */
-/* PLATFORM INDEPENDANT IMAGE FUNCTIONS                                      */
+/* PLATFORM INDEPENDENT IMAGE FUNCTIONS                                      */
 /* ========================================================================= */
 
 struct ImageInfo
@@ -800,9 +800,29 @@ Bitmap *getBitmapFromImageID(int pos)
 
 char *getTokenFromImageID(int graphic)
 {
+#if 0
+  /* !!! this does not work for dynamic artwork (crash!) !!! */
   struct FileInfo *file_list = (struct FileInfo *)image_info->file_list;
 
   return file_list[graphic].token;
+#else
+  struct FileInfo *file_list = getImageListEntry(graphic);
+
+  return (file_list != NULL ? file_list->token : NULL);
+#endif
+}
+
+int getImageIDFromToken(char *token)
+{
+  struct FileInfo *file_list = image_info->file_list;
+  int num_list_entries = image_info->num_file_list_entries;
+  int i;
+
+  for (i=0; i < num_list_entries; i++)
+    if (strcmp(file_list[i].token, token) == 0)
+      return i;
+
+  return -1;
 }
 
 char *getImageConfigFilename()