int burnInText(caddr_t bg, caddr_t fg) { int ix, iy, m, px, py, fx, fy, ifg, n, done; done = 0; for ( iy=0; iy= EMPEG_SCREEN_ROWS || fx < 0 || fx >= EMPEG_SCREEN_COLS ) continue; if ( px == 0 && py == 0 ) continue; n = 64 * fy + fx / 2; if ( fx%2 ) { ifg = ( fg[n] & 0xf0 ); ifg>>= 4; if ( ifg > 0 ) { bg[m] = (bg[m] & 0x0f); done = 1; } } else { ifg = ( fg[n] & 0x0f ); if ( ifg > 0 ) { bg[m] = (bg[m] & 0x0f); done = 1; } } } } } else { for ( py = -1; py <= 1 && !done; py++ ) { for ( px = -1; px <= 1 && !done; px++ ) { fy = iy + py; fx = ix + px; if ( fy < 0 || fy >= EMPEG_SCREEN_ROWS || fx < 0 || fx >= EMPEG_SCREEN_COLS ) continue; if ( px == 0 && py == 0 ) continue; n = 64 * fy + fx / 2; if ( fx%2 ) { ifg = ( fg[n] & 0xf0 ); ifg>>= 4; if ( ifg > 0 ) { bg[m] = (bg[m] & 0xf0); done = 1; } } else { ifg = ( fg[n] & 0x0f ); if ( ifg > 0 ) { bg[m] = (bg[m] & 0xf0); done = 1; } } } } } } } }