From ed8e0b53b756f033faa4aee20db93b466b6c71d1 Mon Sep 17 00:00:00 2001 From: havoc Date: Wed, 15 Nov 2006 11:23:55 +0000 Subject: [PATCH] made cl_viewmodel_scale apply to csqc and gettaginfo fixed bug with concat order in stereo rendering (it was offseting along X in worldspace due to wrong concat order) git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@6620 d7cf8633-e32d-0410-b094-e92efae38249 --- cl_screen.c | 4 ++-- clvm_cmds.c | 2 +- quakedef.h | 1 + svvm_cmds.c | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/cl_screen.c b/cl_screen.c index 8ab102be..164ed0c2 100644 --- a/cl_screen.c +++ b/cl_screen.c @@ -1748,7 +1748,7 @@ void CL_UpdateScreen(void) matrix4x4_t originalmatrix = r_view.matrix; matrix4x4_t offsetmatrix; Matrix4x4_CreateTranslate(&offsetmatrix, 0, r_stereo_separation.value * -0.5f, 0); - Matrix4x4_Concat(&r_view.matrix, &offsetmatrix, &originalmatrix); + Matrix4x4_Concat(&r_view.matrix, &originalmatrix, &offsetmatrix); if (r_stereo_sidebyside.integer) r_stereo_side = 0; @@ -1766,7 +1766,7 @@ void CL_UpdateScreen(void) SCR_DrawScreen(); Matrix4x4_CreateTranslate(&offsetmatrix, 0, r_stereo_separation.value * 0.5f, 0); - Matrix4x4_Concat(&r_view.matrix, &offsetmatrix, &originalmatrix); + Matrix4x4_Concat(&r_view.matrix, &originalmatrix, &offsetmatrix); if (r_stereo_sidebyside.integer) r_stereo_side = 1; diff --git a/clvm_cmds.c b/clvm_cmds.c index 4f9f3680..0e5a9e27 100644 --- a/clvm_cmds.c +++ b/clvm_cmds.c @@ -773,7 +773,7 @@ static void CSQC_R_RecalcView (void) viewmodelmatrix = identitymatrix; r_view.matrix = identitymatrix; Matrix4x4_CreateFromQuakeEntity(&r_view.matrix, csqc_origin[0], csqc_origin[1], csqc_origin[2], csqc_angles[0], csqc_angles[1], csqc_angles[2], 1); - Matrix4x4_CreateFromQuakeEntity(&viewmodelmatrix, csqc_origin[0], csqc_origin[1], csqc_origin[2], csqc_angles[0], csqc_angles[1], csqc_angles[2], 0.3); + Matrix4x4_CreateFromQuakeEntity(&viewmodelmatrix, csqc_origin[0], csqc_origin[1], csqc_origin[2], csqc_angles[0], csqc_angles[1], csqc_angles[2], cl_viewmodel_scale.value); } //#300 void() clearscene (EXT_CSQC) diff --git a/quakedef.h b/quakedef.h index 67591407..cd43b7d0 100644 --- a/quakedef.h +++ b/quakedef.h @@ -254,6 +254,7 @@ extern int current_skill; // chase // extern cvar_t chase_active; +extern cvar_t cl_viewmodel_scale; void Chase_Init (void); void Chase_Reset (void); diff --git a/svvm_cmds.c b/svvm_cmds.c index 524eb600..f8bc0d8a 100644 --- a/svvm_cmds.c +++ b/svvm_cmds.c @@ -2384,7 +2384,7 @@ void SV_GetEntityMatrix (prvm_edict_t *ent, matrix4x4_t *out, qboolean viewmatri if (viewmatrix) Matrix4x4_CreateFromQuakeEntity(out, ent->fields.server->origin[0], ent->fields.server->origin[1], ent->fields.server->origin[2] + ent->fields.server->view_ofs[2], ent->fields.server->v_angle[0], ent->fields.server->v_angle[1], ent->fields.server->v_angle[2], scale); else - Matrix4x4_CreateFromQuakeEntity(out, ent->fields.server->origin[0], ent->fields.server->origin[1], ent->fields.server->origin[2], -ent->fields.server->angles[0], ent->fields.server->angles[1], ent->fields.server->angles[2], scale * 0.333); + Matrix4x4_CreateFromQuakeEntity(out, ent->fields.server->origin[0], ent->fields.server->origin[1], ent->fields.server->origin[2], -ent->fields.server->angles[0], ent->fields.server->angles[1], ent->fields.server->angles[2], scale * cl_viewmodel_scale.value); } int SV_GetEntityLocalTagMatrix(prvm_edict_t *ent, int tagindex, matrix4x4_t *out) -- 2.39.2