static ovrPosef hmdToEyeViewPose[2];
static ovrLayerEyeFov layer;
static long long frameIndex = 0;
+static double observer_x = 0.0;
+static double observer_x_normalize = 0.0;
+static double observer_y = 0.0;
+static double observer_y_normalize = 0.0;
+static double observer_z = 0.0;
+static double observer_z_normalize = 0.0;
int init_ovr(void)
{
y = layer.RenderPose[eye].Position.y;
z = layer.RenderPose[eye].Position.z;
+ /* normalize height to game's observer, if requrested by user */
+ observer_x = x;
+ x += observer_x_normalize;
+ observer_y = y;
+ y += observer_y_normalize;
+ observer_z = z;
+ z += observer_z_normalize;
+
glRotatef(-roll / M_PI * 180.0,0,0,1);
glRotatef(-pitch / M_PI * 180.0,1,0,0);
glRotatef(-yaw / M_PI * 180.0,0,1,0);
glDisable(GL_TEXTURE_2D);
}
+void normalize_observer_ovr(void)
+{
+ observer_x_normalize = -observer_x;
+ observer_y_normalize = -observer_y;
+ observer_z_normalize = -observer_z;
+}
+
void exit_ovr(void)
{
int eye;
if (config_ctrl_c)
quit = 1;
break;
+ case KEYCODE_n:
+#ifdef HAVE_OVR
+ normalize_observer_ovr();
+ osd_info("", "change height");
+#else
+ osd_info("", "not applicable");
+#endif
+ break;
case KEYCODE_KP_PLUS:
if (config_fov / 1.2 >= FOV_MIN)
config_fov /= 1.2;
" Press `CTRL' + `A' to toggle audio filter on / off.\n"
" Press `CTRL' + `+' or `-' to change field-of-view (OpenGL).\n"
" Press `CTRL' + `I' to skip intro (approaching to Eris).\n"
+#ifdef HAVE_OVR
+ " Press `CTRL' + `N' to normalize player position.\n"
+#endif
"\n"
"Answer to a Question:\n"
" Press `O' (not Zero) for OK and other key for NO.\n"