X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftools.c;h=670397fe3d11b4a5bb3e129d2b497fe266f5e0af;hb=df4588617a9478bdb512aab7432ef2d3777eb529;hp=d2645960674a93a8112d1c9b9db28fe0bf379cbe;hpb=0918c3eb2f6219a8cc72aa85bd9c4889788dd474;p=rocksndiamonds.git diff --git a/src/tools.c b/src/tools.c index d2645960..670397fe 100644 --- a/src/tools.c +++ b/src/tools.c @@ -161,6 +161,10 @@ void BackToFront() VX+VIDEO_CONTROL_XPOS,VY+VIDEO_CONTROL_YPOS); } } + if (redraw_mask & REDRAW_DOOR_3) + XCopyArea(display, backbuffer, window, gc, + EX, EY, EXSIZE, EYSIZE, + EX, EY); redraw_mask &= ~REDRAW_DOORS; } @@ -1732,10 +1736,15 @@ unsigned int MoveDoor(unsigned int door_state) int ReadPixel(Drawable d, int x, int y) { - static XImage *pixelimage; + XImage *pixel_image; + unsigned long pixel_value; - pixelimage = XGetImage(display, d, x, y, 1, 1, AllPlanes, ZPixmap); - return(XGetPixel(pixelimage, 0, 0)); + pixel_image = XGetImage(display, d, x, y, 1, 1, AllPlanes, ZPixmap); + pixel_value = XGetPixel(pixel_image, 0, 0); + + XDestroyImage(pixel_image); + + return pixel_value; } int el2gfx(int element)