diff --git a/ref/soft/r_beams.c b/ref/soft/r_beams.c index 4fd107a0..3d01050f 100644 --- a/ref/soft/r_beams.c +++ b/ref/soft/r_beams.c @@ -100,7 +100,7 @@ static void R_BeamComputeNormal( const vec3_t vStartPos, const vec3_t vNextPos, VectorSubtract( vStartPos, vNextPos, vTangentY ); // vDirToBeam = vector from viewer origin to beam - VectorSubtract( vStartPos, RI.vieworg, vDirToBeam ); + VectorSubtract( vStartPos, RI.rvp.vieworigin, vDirToBeam ); // get a vector that is perpendicular to us and perpendicular to the beam. // this is used to fatten the beam. @@ -1000,7 +1000,7 @@ static void R_BeamDraw( BEAM *pbeam, float frametime ) float flDistance; // fade the beam if the player's not looking at the source - VectorSubtract( RI.vieworg, pbeam->source, localDir ); + VectorSubtract( RI.rvp.vieworigin, pbeam->source, localDir ); flDot = DotProduct( delta, localDir ); VectorScale( delta, flDot, vecProjection ); VectorSubtract( localDir, vecProjection, tmp ); diff --git a/ref/soft/r_bsp.c b/ref/soft/r_bsp.c index 4678a20d..70e15242 100644 --- a/ref/soft/r_bsp.c +++ b/ref/soft/r_bsp.c @@ -650,7 +650,7 @@ void R_RenderWorld( void ) RI.currententity = CL_GetEntityByIndex( 0 ); // RI.currententity->frame = (int)(gp_cl->time*2); - VectorCopy( RI.vieworg, tr.modelorg ); + VectorCopy( RI.rvp.vieworigin, tr.modelorg ); RI.currentmodel = WORLDMODEL; r_pcurrentvertbase = RI.currentmodel->vertexes; diff --git a/ref/soft/r_edge.c b/ref/soft/r_edge.c index c7912f41..60e32c06 100644 --- a/ref/soft/r_edge.c +++ b/ref/soft/r_edge.c @@ -877,7 +877,7 @@ static void D_TurbulentSurf( surf_t *s ) // TODO: store once at start of frame RI.currententity = s->entity; // FIXME: make this passed in to // R_RotateBmodel () - VectorSubtract( RI.vieworg, RI.currententity->origin, + VectorSubtract( RI.rvp.vieworigin, RI.currententity->origin, local_modelorg ); TransformVector( local_modelorg, transformed_modelorg ); @@ -940,7 +940,7 @@ static void D_AlphaSurf( surf_t *s ) // TODO: store once at start of frame RI.currententity = s->entity; // FIXME: make this passed in to // R_RotateBmodel () - VectorSubtract( RI.vieworg, RI.currententity->origin, local_modelorg ); + VectorSubtract( RI.rvp.vieworigin, RI.currententity->origin, local_modelorg ); TransformVector( local_modelorg, transformed_modelorg ); R_RotateBmodel(); // FIXME: don't mess with the frustum, @@ -1021,7 +1021,7 @@ static void D_SolidSurf( surf_t *s ) // TODO: store once at start of frame RI.currententity = s->entity; // FIXME: make this passed in to // R_RotateBmodel () - VectorSubtract( RI.vieworg, RI.currententity->origin, local_modelorg ); + VectorSubtract( RI.rvp.vieworigin, RI.currententity->origin, local_modelorg ); TransformVector( local_modelorg, transformed_modelorg ); R_RotateBmodel(); // FIXME: don't mess with the frustum, @@ -1123,7 +1123,7 @@ void D_DrawSurfaces( void ) surf_t *s; // currententity = NULL; //&r_worldentity; - VectorSubtract( RI.vieworg, vec3_origin, tr.modelorg ); + VectorSubtract( RI.rvp.vieworigin, vec3_origin, tr.modelorg ); TransformVector( tr.modelorg, transformed_modelorg ); VectorCopy( transformed_modelorg, world_transformed_modelorg ); @@ -1148,7 +1148,7 @@ void D_DrawSurfaces( void ) D_DrawflatSurfaces(); // RI.currententity = NULL; //&r_worldentity; - VectorSubtract( RI.vieworg, vec3_origin, tr.modelorg ); + VectorSubtract( RI.rvp.vieworigin, vec3_origin, tr.modelorg ); R_TransformFrustum(); } diff --git a/ref/soft/r_local.h b/ref/soft/r_local.h index c8771052..a58f6453 100644 --- a/ref/soft/r_local.h +++ b/ref/soft/r_local.h @@ -122,7 +122,7 @@ extern viddef_t vid; typedef struct { - ref_viewpass_t rvp; + const ref_viewpass_t rvp; qboolean drawWorld; // ignore world for drawing PlayerModel qboolean isSkyVisible; // sky is visible @@ -137,9 +137,6 @@ typedef struct mleaf_t *viewleaf; mleaf_t *oldviewleaf; - vec3_t pvsorigin; - vec3_t vieworg; // locked vieworigin - vec3_t viewangles; vec3_t vforward; vec3_t vright; vec3_t vup; diff --git a/ref/soft/r_main.c b/ref/soft/r_main.c index 18d4bd66..58615560 100644 --- a/ref/soft/r_main.c +++ b/ref/soft/r_main.c @@ -172,7 +172,7 @@ static int R_TransEntityCompare( const cl_entity_t **a, const cl_entity_t **b ) { VectorAverage( ent1->model->mins, ent1->model->maxs, org ); VectorAdd( ent1->origin, org, org ); - VectorSubtract( RI.vieworg, org, vecLen ); + VectorSubtract( RI.rvp.vieworigin, org, vecLen ); dist1 = DotProduct( vecLen, vecLen ); } else @@ -182,7 +182,7 @@ static int R_TransEntityCompare( const cl_entity_t **a, const cl_entity_t **b ) { VectorAverage( ent2->model->mins, ent2->model->maxs, org ); VectorAdd( ent2->origin, org, org ); - VectorSubtract( RI.vieworg, org, vecLen ); + VectorSubtract( RI.rvp.vieworigin, org, vecLen ); dist2 = DotProduct( vecLen, vecLen ); } else @@ -392,10 +392,10 @@ R_SetupFrustum void R_SetupFrustum( void ) { // build the transformation matrix for the given view angles - AngleVectors( RI.viewangles, RI.vforward, RI.vright, RI.vup ); + AngleVectors( RI.rvp.viewangles, RI.vforward, RI.vright, RI.vup ); { - VectorCopy( RI.vieworg, RI.cullorigin ); + VectorCopy( RI.rvp.vieworigin, RI.cullorigin ); VectorCopy( RI.vforward, RI.cull_vforward ); VectorCopy( RI.vright, RI.cull_vright ); VectorCopy( RI.vup, RI.cull_vup ); @@ -440,10 +440,10 @@ R_SetupModelviewMatrix static void R_SetupModelviewMatrix( matrix4x4 m ) { Matrix4x4_CreateModelview( m ); - Matrix4x4_ConcatRotate( m, -RI.viewangles[2], 1, 0, 0 ); - Matrix4x4_ConcatRotate( m, -RI.viewangles[0], 0, 1, 0 ); - Matrix4x4_ConcatRotate( m, -RI.viewangles[1], 0, 0, 1 ); - Matrix4x4_ConcatTranslate( m, -RI.vieworg[0], -RI.vieworg[1], -RI.vieworg[2] ); + Matrix4x4_ConcatRotate( m, -RI.rvp.viewangles[2], 1, 0, 0 ); + Matrix4x4_ConcatRotate( m, -RI.rvp.viewangles[0], 0, 1, 0 ); + Matrix4x4_ConcatRotate( m, -RI.rvp.viewangles[1], 0, 0, 1 ); + Matrix4x4_ConcatTranslate( m, -RI.rvp.vieworigin[0], -RI.rvp.vieworigin[1], -RI.rvp.vieworigin[2] ); } /* @@ -481,7 +481,7 @@ R_FindViewLeaf void R_FindViewLeaf( void ) { RI.oldviewleaf = RI.viewleaf; - RI.viewleaf = gEngfuncs.Mod_PointInLeaf( RI.pvsorigin, WORLDMODEL->nodes ); + RI.viewleaf = gEngfuncs.Mod_PointInLeaf( RI.rvp.vieworigin, WORLDMODEL->nodes ); } /* @@ -492,7 +492,7 @@ R_SetupFrame static void R_SetupFrame( void ) { // setup viewplane dist - RI.viewplanedist = DotProduct( RI.vieworg, RI.vforward ); + RI.viewplanedist = DotProduct( RI.rvp.vieworigin, RI.vforward ); // if( !gl_nosort->value ) { @@ -832,7 +832,7 @@ static void R_DrawBEntitiesOnList( void ) continue; // no part in a visible leaf VectorCopy( RI.currententity->origin, r_entorigin ); - VectorSubtract( RI.vieworg, r_entorigin, tr.modelorg ); + VectorSubtract( RI.rvp.vieworigin, r_entorigin, tr.modelorg ); // VectorSubtract (r_origin, RI.currententity->origin, modelorg); r_pcurrentvertbase = RI.currentmodel->vertexes; @@ -944,7 +944,7 @@ void R_DrawBrushModel( cl_entity_t *pent ) alphaspans = true; VectorCopy( RI.currententity->origin, r_entorigin ); - VectorSubtract( RI.vieworg, r_entorigin, tr.modelorg ); + VectorSubtract( RI.rvp.vieworigin, r_entorigin, tr.modelorg ); // VectorSubtract (r_origin, RI.currententity->origin, modelorg); r_pcurrentvertbase = RI.currentmodel->vertexes; @@ -1053,7 +1053,7 @@ static void R_MarkLeaves( void ) tr.visframecount++; r_oldviewcluster = r_viewcluster; - gEngfuncs.R_FatPVS( RI.pvsorigin, r_pvs_radius->value, RI.visbytes, false, false ); + gEngfuncs.R_FatPVS( RI.rvp.vieworigin, r_pvs_radius->value, RI.visbytes, false, false ); vis = RI.visbytes; for( i = 0; i < WORLDMODEL->numleafs; i++ ) @@ -1166,10 +1166,6 @@ void R_SetupRefParams( const ref_viewpass_t *rvp ) RI.drawOrtho = FBitSet( rvp->flags, RF_DRAW_OVERVIEW ); else RI.drawOrtho = false; - - VectorCopy( rvp->vieworigin, RI.vieworg ); - VectorCopy( rvp->viewangles, RI.viewangles ); - VectorCopy( rvp->vieworigin, RI.pvsorigin ); } /* @@ -1535,7 +1531,7 @@ int CL_FxBlend( cl_entity_t *e ) case kRenderFxHologram: case kRenderFxDistort: VectorCopy( e->origin, tmp ); - VectorSubtract( tmp, RI.vieworg, tmp ); + VectorSubtract( tmp, RI.rvp.vieworigin, tmp ); dist = DotProduct( tmp, RI.vforward ); // turn off distance fade diff --git a/ref/soft/r_misc.c b/ref/soft/r_misc.c index 7aa1debc..5af03ce3 100644 --- a/ref/soft/r_misc.c +++ b/ref/soft/r_misc.c @@ -288,14 +288,14 @@ void R_SetupFrameQ( void ) // build the transformation matrix for the given view angles - VectorCopy( RI.vieworg, tr.modelorg ); + VectorCopy( RI.rvp.vieworigin, tr.modelorg ); - // AngleVectors (RI.viewangles, RI.vforward, RI.vright, RI.vup); + // AngleVectors (RI.rvp.viewangles, RI.vforward, RI.vright, RI.vup); // current viewleaf if( RI.drawWorld ) { - RI.viewleaf = gEngfuncs.Mod_PointInLeaf( RI.vieworg, WORLDMODEL->nodes ); + RI.viewleaf = gEngfuncs.Mod_PointInLeaf( RI.rvp.vieworigin, WORLDMODEL->nodes ); r_viewcluster = RI.viewleaf->cluster; } diff --git a/ref/soft/r_part.c b/ref/soft/r_part.c index fe4bfad2..9782bd50 100644 --- a/ref/soft/r_part.c +++ b/ref/soft/r_part.c @@ -72,9 +72,9 @@ void GAME_EXPORT CL_DrawParticles( double frametime, particle_t *cl_active_parti size = partsize; // get initial size of particle // scale up to keep particles from disappearing - size += ( p->org[0] - RI.vieworg[0] ) * RI.cull_vforward[0]; - size += ( p->org[1] - RI.vieworg[1] ) * RI.cull_vforward[1]; - size += ( p->org[2] - RI.vieworg[2] ) * RI.cull_vforward[2]; + size += ( p->org[0] - RI.rvp.vieworigin[0] ) * RI.cull_vforward[0]; + size += ( p->org[1] - RI.rvp.vieworigin[1] ) * RI.cull_vforward[1]; + size += ( p->org[2] - RI.rvp.vieworigin[2] ) * RI.cull_vforward[2]; if( size < 20.0f ) size = partsize; diff --git a/ref/soft/r_sprite.c b/ref/soft/r_sprite.c index dc04a868..9ae66ceb 100644 --- a/ref/soft/r_sprite.c +++ b/ref/soft/r_sprite.c @@ -65,10 +65,10 @@ static float R_SpriteGlowBlend( vec3_t origin, int rendermode, int renderfx, flo float dist, brightness; vec3_t glowDist; - VectorSubtract( origin, RI.vieworg, glowDist ); + VectorSubtract( origin, RI.rvp.vieworigin, glowDist ); dist = VectorLength( glowDist ); - pmtrace_t *tr = gEngfuncs.EV_VisTraceLine( RI.vieworg, origin, r_traceglow.value ? PM_GLASS_IGNORE : ( PM_GLASS_IGNORE | PM_STUDIO_IGNORE )); + pmtrace_t *tr = gEngfuncs.EV_VisTraceLine( RI.rvp.vieworigin, origin, r_traceglow.value ? PM_GLASS_IGNORE : ( PM_GLASS_IGNORE | PM_STUDIO_IGNORE )); if(( 1.0f - tr->fraction ) * dist > 8.0f ) return 0.0f; @@ -235,7 +235,7 @@ void R_DrawSpriteModel( cl_entity_t *e ) VectorSubtract( origin, v_forward, origin ); break; case SPR_FACING_UPRIGHT: - VectorSet( v_right, origin[1] - RI.vieworg[1], -( origin[0] - RI.vieworg[0] ), 0.0f ); + VectorSet( v_right, origin[1] - RI.rvp.vieworigin[1], -( origin[0] - RI.rvp.vieworigin[0] ), 0.0f ); VectorSet( v_up, 0.0f, 0.0f, 1.0f ); VectorNormalize( v_right ); break; diff --git a/ref/soft/r_studio.c b/ref/soft/r_studio.c index 38b37219..0e89a233 100644 --- a/ref/soft/r_studio.c +++ b/ref/soft/r_studio.c @@ -420,7 +420,7 @@ pfnGetViewInfo static void pfnGetViewInfo( float *origin, float *upv, float *rightv, float *forwardv ) { if( origin ) - VectorCopy( RI.vieworg, origin ); + VectorCopy( RI.rvp.vieworigin, origin ); if( forwardv ) VectorCopy( RI.vforward, forwardv ); if( rightv ) @@ -2572,7 +2572,7 @@ R_StudioSetChromeOrigin */ static void R_StudioSetChromeOrigin( void ) { - VectorCopy( RI.vieworg, g_studio.chrome_origin ); + VectorCopy( RI.rvp.vieworigin, g_studio.chrome_origin ); } /* diff --git a/ref/soft/r_trialias.c b/ref/soft/r_trialias.c index 95a65711..f59b3ebc 100644 --- a/ref/soft/r_trialias.c +++ b/ref/soft/r_trialias.c @@ -78,9 +78,9 @@ void R_SetUpWorldTransform( void ) aliasoldworldtransform[i][0] = aliasworldtransform[i][2] = s_alias_up[i]; } - aliasworldtransform[0][3] = -RI.vieworg[0]; - aliasworldtransform[1][3] = -RI.vieworg[1]; - aliasworldtransform[2][3] = -RI.vieworg[2]; + aliasworldtransform[0][3] = -RI.rvp.vieworigin[0]; + aliasworldtransform[1][3] = -RI.rvp.vieworigin[1]; + aliasworldtransform[2][3] = -RI.rvp.vieworigin[2]; // aliasoldworldtransform[0][3] = RI.currententity->oldorigin[0]-r_origin[0]; // aliasoldworldtransform[1][3] = RI.currententity->oldorigin[1]-r_origin[1];