I need some help calculating the angle between two 2d points, but theres a slight twist. I'm working with a weird way of representing rotation.

Going clockwise, starting at WEST we have 0 degrees. At NORTH, it's -90 degrees. At EAST, it swaps from -180 degrees to 180 degrees, at SOUTH its 90 degrees, back down to 0 at WEST. Here is a picture:

What I need to do, is write a function that takes two 2D points, and calculates the angle from point A to point B, as this wierd 0 to -180, 180 to 0, value.

Anyone have any ideas? And no, I cannot use a standard 0-360 degrees representation, I have to solve this problem using this method of representing the angle.

Many thanks!