Pointer arithmetic sucks

int direction = (fabs(click[DIR_X] - ...
int speed = (click[direction] < currentDownAt[direction]) ?
...
 
/*float*/ double newCorners[2][2]; // VC++ wants a widening conversion
 
newCorners[CORNER_NW][DIR_X] = currentBlock->corners[
...
newCorners[CORNER_NW][DIR_Y] = currentBlock->corners[
...
 
...
 
memcpy(currentBlock->corners, newCorners, 4 * sizeof(float));

Pointer arithmetic sucks.