rendered paste bodyvoid RotateSprite8x8(unsigned char *sprite, void *dest, long degclockwise) {
short posx=-4;
short posy=-4;
char *destspr=dest;
short xrotated=0,yrotated=0;
for(;posy<=4;posy++) {
if(posy) {
for(posx=-4;posx<=4;posx++) {
if(posx) {
if(sprite[posy] & (posx>0 ? (16>>posx) : (8<<-posx))) {
xrotated=posx*cos(degclockwise) - posy * sin(degclockwise);
yrotated=posx*sin(degclockwise) + posy * cos(degclockwise);
*(destspr+(yrotated<0 ? yrotated+4 : yrotated+3)) |= xrotated?(xrotated>0?(16>>xrotated):(8<<-xrotated)):0;
}
}
}
}
}
}