+ 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 pcx_err;
+ char *picture_ext = ".pcx";
+#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/%s",
+ options.base_directory, GRAPHICS_DIRECTORY, 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
+
+ pcx_err = Read_PCX_to_Pixmaps(display, window, gc, filename,
+ &pix[pos], &clipmask[pos]);
+
+ switch(pcx_err)
+ {
+ case PCX_Success:
+ break;
+ case PCX_OpenFailed:
+ Error(ERR_EXIT, "cannot open PCX file '%s'", filename);
+ case PCX_ReadFailed:
+ Error(ERR_EXIT, "cannot read PCX file '%s'", filename);
+ case PCX_FileInvalid:
+ Error(ERR_EXIT, "invalid PCX file '%s'", filename);
+ case PCX_NoMemory:
+ Error(ERR_EXIT, "not enough memory for PCX file '%s'", filename);
+ case PCX_ColorFailed:
+ Error(ERR_EXIT, "cannot get colors for PCX file '%s'", filename);
+ default:
+ break;
+ }
+
+#ifdef DEBUG_TIMING
+ count2 = Counter();
+ printf("PCX 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/%s",
+ options.base_directory, GRAPHICS_DIRECTORY, basefilename);
+
+#ifdef DEBUG_TIMING
+ count1 = Counter();
+#endif
+
+ xbm_err = XReadBitmapFile(display,window,filename,
+ &width,&height,&clipmask[pos],&hot_x,&hot_y);