rem: unsigned char *dr, *dg, *db;
add: unsigned char *dr, *dg, *db, *da;
context: RCombineImagesWithOpaqueness(RImage *image, RImage *src, int opaqueness){    register int i;    unsigned char *dr, *dg, *db;    unsigned char *sr, *sg, *sb, *sa;    int c_opaqueness;    assert(image->width == src->width);    assert(image->height == src->height);    dr = image->data[0];    dg = image->data[1];    db = image->data[2];    sr = src->data[0];    sg = src->data[1];    sb = src->data[2];    sa = src->data[3];    c_opaqueness = 255 - opaqueness;#define OP opaqueness    if (!src->data[3]) {#define COP c_opaqueness	for (i=0; i<image->width*image->height; i++) {	    *dr = (((int)*dr *(int)COP) + ((int)*sr *(int)OP))/256;	    *dg = (((int)*dg *(int)COP) + ((int)*sg *(int)OP))/256;	    *db = (((int)*db *(int)COP) + ((int)*sb *(int)OP))/256;	    dr++;    dg++;    db++;	    sr++;    sg++;    sb++;	}#undef COP    } else {	int tmp;	for (i=0; i<image->width*image->height; i++) {	        tmp= (*sa * opaqueness)/256;		*dr = (((int)*dr *(int)(255-tmp)) + ((int)*sr *(int)tmp))/256;		*dg = (((int)*dg *(int)(255-tmp)) + ((int)*sg *(int)tmp))/256;		*db = (((int)*db *(int)(255-tmp)) + ((int)*sb *(int)tmp))/256;		dr++;    dg++;    db++;		sr++;    sg++;    sb++;		sa++;	}    }#undef OP}