Reset observer when starting game
[mercenary-reloaded.git] / src / libovr / ovr.c
index bfab6c4..880dad1 100755 (executable)
@@ -335,6 +335,8 @@ void begin_render_ovr(void)
                print_info("Failed to begin frame (error %d)\n", result);
 }
 
                print_info("Failed to begin frame (error %d)\n", result);
 }
 
+static int initial_observer_reset = 1;
+
 void begin_render_ovr_eye(int eye, double *camera_x, double *camera_y, double *camera_z)
 {
        int curIndex;
 void begin_render_ovr_eye(int eye, double *camera_x, double *camera_y, double *camera_z)
 {
        int curIndex;
@@ -365,10 +367,14 @@ void begin_render_ovr_eye(int eye, double *camera_x, double *camera_y, double *c
 
        /* reset to game's observer, if requrested by user */
        observer_x = x;
 
        /* reset to game's observer, if requrested by user */
        observer_x = x;
-       x += observer_x_reset;
        observer_y = y;
        observer_y = y;
-       y += observer_y_reset;
        observer_z = z;
        observer_z = z;
+       if (initial_observer_reset) {
+               initial_observer_reset = 0;
+               reset_observer_ovr();
+       }
+       x += observer_x_reset;
+       y += observer_y_reset;
        z += observer_z_reset;
 
        glRotatef(-roll / M_PI * 180.0,0,0,1);
        z += observer_z_reset;
 
        glRotatef(-roll / M_PI * 180.0,0,0,1);