Window rotate camera

I had some issues with signedness on casting of x and y, but everything looks fine now. I hope `(int*)&x` as parameter is safe?

Sub 0x00688972 has something to do with the middle point visibility, it returns x=0x8000 if you move any window towards the middle of the screen.

I've also noticed that center_2d_coordinates was making off-by-one errors caused by wrong order of operations. (By the way, this would be a good candidate to having a test (#360) written for, as it doesn't change any state. I don't know how to approach it though.)