Tyler
public c v1 · immutablevoid ClipSprite8_OR(short x, short y, short h, void *sprite, void *dest){ short first_byte, bit, i, j, bt; // Draw Sprite first_byte = (y * 30) + (x >> 3); bit = (~x) & 7; for(i=0; i<h; i++) { for(j=0; j<8; j++) { if (!peek_bit(sprite+i, j) || (j + x) < 0 || (i + y) < 0 || (j + x) > (LCD_WIDTH - 1) || (i + y) > (LCD_HEIGHT - 1)) continue; bt = bit - j; if (bt < 0) poke_bset(dest+first_byte+(i * 30)+1, (bt + 8)); else poke_bset(dest+first_byte+(i * 30), bt); } }}