All pastes #78456 Raw Edit

Something

public text v1 · immutable
·published 2006-07-04 02:51 UTC
rendered paste body
void 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;
				}
			}

		}
	}
}


}