- XCopyArea(display,pix[PIX_HEROES],drawto_field,gc,
- (graphic % HEROES_PER_LINE)*TILEX+cx,
- (graphic / HEROES_PER_LINE)*TILEY+cy,
- width,height, SX+x*TILEX+dx,SY+y*TILEY+dy);
+ src_x = (graphic % HEROES_PER_LINE)*TILEX+cx;
+ src_y = (graphic / HEROES_PER_LINE)*TILEY+cy;
+ dest_x = FX+x*TILEX+dx;
+ dest_y = FY+y*TILEY+dy;
+
+ if (mask_mode == USE_MASKING)
+ {
+ XSetClipOrigin(display,clip_gc[PIX_HEROES],dest_x-src_x,dest_y-src_y);
+ XCopyArea(display,pix[PIX_HEROES],drawto_field,clip_gc[PIX_HEROES],
+ src_x,src_y, width,height, dest_x,dest_y);
+ }
+ else
+ XCopyArea(display,pix[PIX_HEROES],drawto_field,gc,
+ src_x,src_y, width,height, dest_x,dest_y);