Skip to content

Commit 289c87f

Browse files
committed
Re-Apply all VR changes
1 parent b22fa83 commit 289c87f

29 files changed

+3205
-125
lines changed

Quake/chase.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,14 @@ void TraceLine (vec3_t start, vec3_t end, vec3_t impact)
5858
VectorCopy (trace.endpos, impact);
5959
}
6060

61+
void TraceLineToEntity(vec3_t start, vec3_t end, vec3_t impact, edict_t *ent)
62+
{
63+
trace_t trace;
64+
memset(&trace, 0, sizeof(trace));
65+
trace = SV_Move(start, vec3_origin, vec3_origin, end, MOVE_NORMAL, ent);
66+
VectorCopy(trace.endpos, impact);
67+
}
68+
6169
/*
6270
==============
6371
Chase_UpdateForClient -- johnfitz -- orient client based on camera. called after input

Quake/cl_input.c

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -252,37 +252,37 @@ void CL_AdjustAngles (void)
252252

253253
if (!(in_strafe.state & 1))
254254
{
255-
cl.viewangles[YAW] -= speed*cl_yawspeed.value*CL_KeyState (&in_right);
256-
cl.viewangles[YAW] += speed*cl_yawspeed.value*CL_KeyState (&in_left);
257-
cl.viewangles[YAW] = anglemod(cl.viewangles[YAW]);
255+
cl.aimangles[YAW] -= speed*cl_yawspeed.value*CL_KeyState(&in_right);
256+
cl.aimangles[YAW] += speed*cl_yawspeed.value*CL_KeyState(&in_left);
257+
cl.aimangles[YAW] = anglemod(cl.aimangles[YAW]);
258258
}
259259
if (in_klook.state & 1)
260260
{
261261
V_StopPitchDrift ();
262-
cl.viewangles[PITCH] -= speed*cl_pitchspeed.value * CL_KeyState (&in_forward);
263-
cl.viewangles[PITCH] += speed*cl_pitchspeed.value * CL_KeyState (&in_back);
262+
cl.aimangles[PITCH] -= speed*cl_pitchspeed.value * CL_KeyState(&in_forward);
263+
cl.aimangles[PITCH] += speed*cl_pitchspeed.value * CL_KeyState(&in_back);
264264
}
265265

266266
up = CL_KeyState (&in_lookup);
267267
down = CL_KeyState(&in_lookdown);
268268

269-
cl.viewangles[PITCH] -= speed*cl_pitchspeed.value * up;
270-
cl.viewangles[PITCH] += speed*cl_pitchspeed.value * down;
269+
cl.aimangles[PITCH] -= speed*cl_pitchspeed.value * up;
270+
cl.aimangles[PITCH] += speed*cl_pitchspeed.value * down;
271271

272272
if (up || down)
273273
V_StopPitchDrift ();
274274

275275
//johnfitz -- variable pitch clamping
276-
if (cl.viewangles[PITCH] > cl_maxpitch.value)
277-
cl.viewangles[PITCH] = cl_maxpitch.value;
278-
if (cl.viewangles[PITCH] < cl_minpitch.value)
279-
cl.viewangles[PITCH] = cl_minpitch.value;
276+
if (cl.aimangles[PITCH] > cl_maxpitch.value)
277+
cl.aimangles[PITCH] = cl_maxpitch.value;
278+
if (cl.aimangles[PITCH] < cl_minpitch.value)
279+
cl.aimangles[PITCH] = cl_minpitch.value;
280280
//johnfitz
281281

282-
if (cl.viewangles[ROLL] > 50)
283-
cl.viewangles[ROLL] = 50;
284-
if (cl.viewangles[ROLL] < -50)
285-
cl.viewangles[ROLL] = -50;
282+
if (cl.aimangles[ROLL] > 50)
283+
cl.aimangles[ROLL] = 50;
284+
if (cl.aimangles[ROLL] < -50)
285+
cl.aimangles[ROLL] = -50;
286286
}
287287

288288
/*
@@ -361,9 +361,9 @@ void CL_SendMove (const usercmd_t *cmd)
361361
for (i=0 ; i<3 ; i++)
362362
//johnfitz -- 16-bit angles for PROTOCOL_FITZQUAKE
363363
if (cl.protocol == PROTOCOL_NETQUAKE)
364-
MSG_WriteAngle (&buf, cl.viewangles[i]);
364+
MSG_WriteAngle (&buf, cl.aimangles[i]);
365365
else
366-
MSG_WriteAngle16 (&buf, cl.viewangles[i]);
366+
MSG_WriteAngle16 (&buf, cl.aimangles[i]);
367367
//johnfitz
368368

369369
MSG_WriteShort (&buf, cmd->forwardmove);

Quake/cl_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,7 @@ void CL_RelinkEntities (void)
444444
d -= 360;
445445
else if (d < -180)
446446
d += 360;
447-
cl.viewangles[j] = cl.mviewangles[1][j] + frac*d;
447+
cl.viewangles[j] = cl.aimangles[j] = cl.mviewangles[1][j] + frac*d;
448448
}
449449
}
450450

Quake/cl_parse.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
2424

2525
#include "quakedef.h"
2626
#include "bgmusic.h"
27+
#include "vr.h"
2728

2829
const char *svc_strings[] =
2930
{
@@ -1022,8 +1023,9 @@ void CL_ParseServerMessage (void)
10221023
break;
10231024

10241025
case svc_setangle:
1025-
for (i=0 ; i<3 ; i++)
1026-
cl.viewangles[i] = MSG_ReadAngle ();
1026+
for (i = 0; i<3; i++)
1027+
cl.viewangles[i] = MSG_ReadAngle();
1028+
VR_SetAngles(cl.viewangles);
10271029
break;
10281030

10291031
case svc_setview:

Quake/client.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,8 @@ typedef struct
166166
// between these
167167
vec3_t viewangles;
168168

169+
vec3_t aimangles;
170+
169171
vec3_t mvelocity[2]; // update by server, used for lean+bob
170172
// (0 is newest)
171173
vec3_t velocity; // lerped between mvelocity[0] and [1]
@@ -368,6 +370,7 @@ extern cvar_t chase_active;
368370

369371
void Chase_Init (void);
370372
void TraceLine (vec3_t start, vec3_t end, vec3_t impact);
373+
void TraceLineToEntity(vec3_t start, vec3_t end, vec3_t impact, edict_t *ent);
371374
void Chase_UpdateForClient (void); //johnfitz
372375
void Chase_UpdateForDrawing (void); //johnfitz
373376

Quake/gl_draw.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
2929

3030
cvar_t scr_conalpha = {"scr_conalpha", "0.5", CVAR_ARCHIVE}; //johnfitz
3131

32+
extern cvar_t vr_enabled;
33+
3234
qpic_t *draw_disc;
3335
qpic_t *draw_backtile;
3436

@@ -648,6 +650,9 @@ Draw_FadeScreen -- johnfitz -- revised
648650
*/
649651
void Draw_FadeScreen (void)
650652
{
653+
if (vr_enabled.value)
654+
return;
655+
651656
GL_SetCanvas (CANVAS_DEFAULT);
652657

653658
glEnable (GL_BLEND);
@@ -686,6 +691,9 @@ void GL_SetCanvas (canvastype newcanvas)
686691

687692
currentcanvas = newcanvas;
688693

694+
if (vr_enabled.value && !con_forcedup)
695+
return;
696+
689697
glMatrixMode(GL_PROJECTION);
690698
glLoadIdentity ();
691699

Quake/gl_rmain.c

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
2222
// r_main.c
2323

2424
#include "quakedef.h"
25+
#include "vr.h"
2526

2627
qboolean r_cache_thrash; // compatability
2728

@@ -102,6 +103,11 @@ cvar_t r_noshadow_list = {"r_noshadow_list", "progs/flame2.mdl,progs/flame.mdl,p
102103
extern cvar_t r_vfog;
103104
//johnfitz
104105

106+
//phoboslab -- cvars for vr
107+
extern cvar_t vr_enabled;
108+
extern cvar_t vr_crosshair;
109+
//phoboslab
110+
105111
cvar_t gl_zfix = {"gl_zfix", "0", CVAR_NONE}; // QuakeSpasm z-fighting fix
106112

107113
cvar_t r_lavaalpha = {"r_lavaalpha","0",CVAR_NONE};
@@ -437,6 +443,9 @@ void R_SetFrustum (float fovx, float fovy)
437443
if (r_stereo.value)
438444
fovx += 10; //silly hack so that polygons don't drop out becuase of stereo skew
439445

446+
if (vr_enabled.value)
447+
fovx += 25; // meh
448+
440449
TurnVector(frustum[0].normal, vpn, vright, fovx/2 - 90); //left plane
441450
TurnVector(frustum[1].normal, vpn, vright, 90 - fovx/2); //right plane
442451
TurnVector(frustum[2].normal, vpn, vup, 90 - fovy/2); //bottom plane
@@ -472,28 +481,34 @@ R_SetupGL
472481
*/
473482
void R_SetupGL (void)
474483
{
475-
//johnfitz -- rewrote this section
476-
glMatrixMode(GL_PROJECTION);
477-
glLoadIdentity ();
478-
glViewport (glx + r_refdef.vrect.x,
479-
gly + glheight - r_refdef.vrect.y - r_refdef.vrect.height,
480-
r_refdef.vrect.width,
481-
r_refdef.vrect.height);
482-
//johnfitz
484+
if (vr_enabled.value) {
485+
VR_SetMatrices();
486+
}
487+
else
488+
{
489+
//johnfitz -- rewrote this section
490+
glMatrixMode(GL_PROJECTION);
491+
glLoadIdentity();
492+
glViewport(glx + r_refdef.vrect.x,
493+
gly + glheight - r_refdef.vrect.y - r_refdef.vrect.height,
494+
r_refdef.vrect.width,
495+
r_refdef.vrect.height);
496+
//johnfitz
483497

484-
GL_SetFrustum (r_fovx, r_fovy); //johnfitz -- use r_fov* vars
498+
GL_SetFrustum(r_fovx, r_fovy); //johnfitz -- use r_fov* vars
485499

486-
// glCullFace(GL_BACK); //johnfitz -- glquake used CCW with backwards culling -- let's do it right
500+
// glCullFace(GL_BACK); //johnfitz -- glquake used CCW with backwards culling -- let's do it right
487501

488-
glMatrixMode(GL_MODELVIEW);
489-
glLoadIdentity ();
502+
glMatrixMode(GL_MODELVIEW);
503+
glLoadIdentity();
490504

491-
glRotatef (-90, 1, 0, 0); // put Z going up
492-
glRotatef (90, 0, 0, 1); // put Z going up
493-
glRotatef (-r_refdef.viewangles[2], 1, 0, 0);
494-
glRotatef (-r_refdef.viewangles[0], 0, 1, 0);
495-
glRotatef (-r_refdef.viewangles[1], 0, 0, 1);
496-
glTranslatef (-r_refdef.vieworg[0], -r_refdef.vieworg[1], -r_refdef.vieworg[2]);
505+
glRotatef(-90, 1, 0, 0); // put Z going up
506+
glRotatef(90, 0, 0, 1); // put Z going up
507+
glRotatef(-r_refdef.viewangles[2], 1, 0, 0);
508+
glRotatef(-r_refdef.viewangles[0], 0, 1, 0);
509+
glRotatef(-r_refdef.viewangles[1], 0, 0, 1);
510+
glTranslatef(-r_refdef.vieworg[0], -r_refdef.vieworg[1], -r_refdef.vieworg[2]);
511+
}
497512

498513
//
499514
// set drawing parms
@@ -662,6 +677,9 @@ void R_DrawViewModel (void)
662677
if (cl.items & IT_INVISIBILITY || cl.stats[STAT_HEALTH] <= 0)
663678
return;
664679

680+
if (vr_enabled.value && vr_crosshair.value)
681+
VR_ShowCrosshair();
682+
665683
currententity = &cl.viewent;
666684
if (!currententity->model)
667685
return;

Quake/gl_rmisc.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
2323
// r_misc.c
2424

2525
#include "quakedef.h"
26+
#include "vr.h"
2627

2728
//johnfitz -- new cvars
2829
extern cvar_t r_stereo;
@@ -245,6 +246,7 @@ void R_Init (void)
245246

246247
Sky_Init (); //johnfitz
247248
Fog_Init (); //johnfitz
249+
VR_Init(); //phoboslab
248250
}
249251

250252
/*

0 commit comments

Comments
 (0)