void __stdcall myglRotatef(float angle, float x, float y, float z)
{
const float epsilon = 1e-6f;
float modelview[16]{};
glGetFloatv(GL_MODELVIEW_MATRIX, modelview);
float dist = sqrtf(modelview[12] * modelview[12] + modelview[13] * modelview[13] + modelview[14] * modelview[14]);
if (dist < 0.0001f) {
if (fabs(x - 1.0f) < epsilon && fabs(y) < epsilon && fabs(z) < epsilon) {
float player_pitch = angle;
player_pitch = fmod(player_pitch + 180.0f, 360.0f) - 180.0f;
if (player_pitch > 90.0f) {
player_pitch = 180.0f - player_pitch;
}
else if (player_pitch < -90.0f) {
player_pitch = -180.0f - player_pitch;
}
if (player_pitch > 89.999f) player_pitch = 90.0f;
if (player_pitch < -89.999f) player_pitch = -90.0f;
if(player_pitch != 0)
printf("Player Pitch: %.2f\n", player_pitch);
}
else if (fabs(x) < epsilon && fabs(y - 1.0f) < epsilon && fabs(z) < epsilon) {
float player_yaw = angle;
player_yaw = fmod(player_yaw + 180.0f, 360.0f) - 180.0f;
if (player_yaw != 0)
printf("Player Yaw: %.2f\n", player_yaw);
}
}
pglRotatef(angle, x, y, z);
}