+ XFillRectangle(display,pix[PIX_DB_DOOR],gc,
+ 0,0, 3*DXSIZE,DYSIZE+VYSIZE);
+
+ for(i=0; i<MAX_BUF_XSIZE; i++)
+ for(j=0; j<MAX_BUF_YSIZE; j++)
+ redraw[i][j] = 0;
+ redraw_tiles = 0;
+ redraw_mask = REDRAW_ALL;
+}
+
+void LoadGfx(int pos, struct PictureFileInfo *pic)
+{
+ 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, ilbm_err;
+ char *picture_ext = ".gif";
+ char *picturemask_ext = "Mask.ilbm";
+#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 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:
+ fprintf(stderr,"Cannot open Xpm file '%s' !\n",filename);
+ CloseAll();
+ exit(-1);
+ case XpmFileInvalid:
+ fprintf(stderr,"Invalid Xpm file '%s'!\n",filename);
+ CloseAll();
+ exit(-1);
+ case XpmNoMemory:
+ fprintf(stderr,"Not enough memory for Xpm file '%s'!\n",filename);
+ CloseAll();
+ exit(1);
+ case XpmColorFailed:
+ fprintf(stderr,"Can't get colors for Xpm file '%s'!\n",filename);
+ CloseAll();
+ exit(-1);
+ default:
+ break;
+ }
+
+#else
+
+ gif_err = Read_GIF_to_Pixmap(display,filename,&pix[pos]);
+
+ switch(gif_err)
+ {
+ case GIF_Success:
+ break;
+ case GIF_OpenFailed:
+ fprintf(stderr,"Cannot open GIF file '%s' !\n",filename);
+ CloseAll();
+ exit(-1);
+ case GIF_ReadFailed:
+ fprintf(stderr,"Cannot read GIF file '%s' !\n",filename);
+ CloseAll();
+ exit(-1);
+ case GIF_FileInvalid:
+ fprintf(stderr,"Invalid GIF file '%s'!\n",filename);
+ CloseAll();
+ exit(-1);
+ case GIF_NoMemory:
+ fprintf(stderr,"Not enough memory for GIF file '%s'!\n",filename);
+ CloseAll();
+ exit(1);
+ case GIF_ColorFailed:
+ fprintf(stderr,"Can't get colors for GIF file '%s'!\n",filename);
+ CloseAll();
+ exit(-1);
+ default:
+ break;
+ }
+
+#endif
+
+#ifdef DEBUG_TIMING
+ count2 = Counter();
+ printf("LOADING %s IN %.2f SECONDS\n",
+ filename,(float)(count2-count1)/100.0);
+#endif
+
+ if (!pix[pos])
+ {
+ fprintf(stderr, "%s: cannot read graphics file '%s'.\n",
+ progname,filename);
+ CloseAll();
+ exit(-1);
+ }
+ }
+
+ /* zugehörige Maske laden (wenn vorhanden) */
+ if (pic->picture_with_mask)
+ {
+ 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