You could use mouse input to turn very very fast, I'd implement it the following way
PHP Code:
void FaceLocation2D(const vec2d& tar){
vec2d pFacing = GetPlayerFacing();
vec2d nFacing = tar-GetPlayerPosition2D();
float phi = angle(pFacing,nFacing); //angle between the two vectors from 0° to 360°
if(phi>180°){
while(!((angle(GetPlayerFacing(),nFacing)>358°) || angle(GetPlayerFacing(),nFacing)<2°))){mouse_miniturnleft();}
}
else{
while(!((angle(GetPlayerFacing(),nFacing)>358°) || angle(GetPlayerFacing(),nFacing)<2°))){mouse_miniturnright();}
}
return;
}
We calculate the facing anglevector by subtracting the player position from the target position, we then calculate the angle between those two anglevectors, if the angle is greater than 180° we've to turn left otherwise we turn right, we have to calc the angle clockwise from pFacing to nFacing.
In a real prog you'll probably use radians because the mathlib uses them.
I hope I could help you with this.
Edit: my math for angles was bogus, so I leave it up to you to calc that stuff