- char basefilename[256];
- char filename[256];
-
-#ifdef XPM_INCLUDE_FILE
- int xpm_err, xbm_err;
- unsigned int width,height;
- int hot_x,hot_y;
- Pixmap shapemask;
- char *picture_ext = ".xpm";
- char *picturemask_ext = "Mask.xbm";
-#else
- int gif_err;
- char *picture_ext = ".gif";
-#endif
-
-#ifdef DEBUG_TIMING
- long count1, count2;
-#endif
-
- /* Grafik laden */
- if (pic->picture_filename)
- {
- sprintf(basefilename,"%s%s",pic->picture_filename,picture_ext);
- DrawInitText(basefilename,150,FC_YELLOW);
- sprintf(filename,"%s/%s",GFX_PATH,basefilename);
-
-#ifdef MSDOS
- rest(100);
-#endif MSDOS
-
-#ifdef DEBUG_TIMING
- count1 = Counter();
-#endif
-
-#ifdef XPM_INCLUDE_FILE
-
- xpm_att[pos].valuemask = XpmCloseness;
- xpm_att[pos].closeness = 20000;
- xpm_err = XpmReadFileToPixmap(display,window,filename,
- &pix[pos],&shapemask,&xpm_att[pos]);
-
- switch(xpm_err)
- {
- case XpmOpenFailed:
- Error(ERR_EXIT, "cannot open XPM file '%s'", filename);
- case XpmFileInvalid:
- Error(ERR_EXIT, "invalid XPM file '%s'", filename);
- case XpmNoMemory:
- Error(ERR_EXIT, "not enough memory for XPM file '%s'", filename);
- case XpmColorFailed:
- Error(ERR_EXIT, "cannot get colors for XPM file '%s'", filename);
- default:
- break;
- }
-
-#ifdef DEBUG_TIMING
- count2 = Counter();
- printf("XPM LOADING %s IN %.2f SECONDS\n",
- filename,(float)(count2-count1)/1000.0);
-#endif
-
-#else
-
- gif_err = Read_GIF_to_Pixmaps(display, window, filename,
- &pix[pos], &clipmask[pos]);
-
- switch(gif_err)
- {
- case GIF_Success:
- break;
- case GIF_OpenFailed:
- Error(ERR_EXIT, "cannot open GIF file '%s'", filename);
- case GIF_ReadFailed:
- Error(ERR_EXIT, "cannot read GIF file '%s'", filename);
- case GIF_FileInvalid:
- Error(ERR_EXIT, "invalid GIF file '%s'", filename);
- case GIF_NoMemory:
- Error(ERR_EXIT, "not enough memory for GIF file '%s'", filename);
- case GIF_ColorFailed:
- Error(ERR_EXIT, "cannot get colors for GIF file '%s'", filename);
- default:
- break;
- }
-
-#ifdef DEBUG_TIMING
- count2 = Counter();
- printf("GIF LOADING %s IN %.2f SECONDS\n",
- filename,(float)(count2-count1)/1000.0);
-#endif
-
-#endif
-
- if (!pix[pos])
- Error(ERR_EXIT, "cannot get graphics for '%s'", pic->picture_filename);
- }
-
- /* zugehörige Maske laden (wenn vorhanden) */
- if (pic->picture_with_mask)
- {
-
-#ifdef XPM_INCLUDE_FILE
-
- sprintf(basefilename,"%s%s",pic->picture_filename,picturemask_ext);
- DrawInitText(basefilename,150,FC_YELLOW);
- sprintf(filename,"%s/%s",GFX_PATH,basefilename);
-
-#ifdef DEBUG_TIMING
- count1 = Counter();
-#endif
-
- xbm_err = XReadBitmapFile(display,window,filename,
- &width,&height,&clipmask[pos],&hot_x,&hot_y);
-
- switch(xbm_err)
- {
- case BitmapSuccess:
- break;
- case BitmapOpenFailed:
- Error(ERR_EXIT, "cannot open XBM file '%s'", filename);
- case BitmapFileInvalid:
- Error(ERR_EXIT, "invalid XBM file '%s'", filename);
- case BitmapNoMemory:
- Error(ERR_EXIT, "not enough memory for XBM file '%s'", filename);
- break;
- default:
- break;
- }
-
-#ifdef DEBUG_TIMING
- count2 = Counter();
- printf("XBM LOADING %s IN %.2f SECONDS\n",
- filename,(float)(count2-count1)/1000.0);
-#endif
-
-#endif
-
- if (!clipmask[pos])
- Error(ERR_EXIT, "cannot get clipmask for '%s'", pic->picture_filename);
- }