From 371c215e998e4d024a4f2ad613d73e6ce81b2675 Mon Sep 17 00:00:00 2001 From: divverent Date: Tue, 7 Apr 2009 05:14:38 +0000 Subject: [PATCH] pitch inversion in gettaginfo: also do the mod_alias check on the client git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@8881 d7cf8633-e32d-0410-b094-e92efae38249 --- clvm_cmds.c | 9 ++++++++- svvm_cmds.c | 8 ++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/clvm_cmds.c b/clvm_cmds.c index da4832ed..3cd92468 100644 --- a/clvm_cmds.c +++ b/clvm_cmds.c @@ -2215,6 +2215,8 @@ void CL_GetEntityMatrix (prvm_edict_t *ent, matrix4x4_t *out, qboolean viewmatri { prvm_eval_t *val; float scale; + float pitchsign; + dp_model_t *model; scale = 1; val = PRVM_EDICTFIELDVALUE(ent, prog->fieldoffsets.scale); @@ -2225,7 +2227,12 @@ void CL_GetEntityMatrix (prvm_edict_t *ent, matrix4x4_t *out, qboolean viewmatri if(viewmatrix) Matrix4x4_CreateFromQuakeEntity(out, cl.csqc_origin[0], cl.csqc_origin[1], cl.csqc_origin[2], cl.csqc_angles[0], cl.csqc_angles[1], cl.csqc_angles[2], scale * cl_viewmodel_scale.value); else - Matrix4x4_CreateFromQuakeEntity(out, ent->fields.client->origin[0], ent->fields.client->origin[1], ent->fields.client->origin[2], -ent->fields.client->angles[0], ent->fields.client->angles[1], ent->fields.client->angles[2], scale); + { + pitchsign = 1; + if ((model = CL_GetModelFromEdict(ent)) && model->type == mod_alias) + pitchsign = -1; + Matrix4x4_CreateFromQuakeEntity(out, ent->fields.client->origin[0], ent->fields.client->origin[1], ent->fields.client->origin[2], pitchsign * ent->fields.client->angles[0], ent->fields.client->angles[1], ent->fields.client->angles[2], scale); + } } diff --git a/svvm_cmds.c b/svvm_cmds.c index 7243558d..25ffe6ef 100644 --- a/svvm_cmds.c +++ b/svvm_cmds.c @@ -2612,7 +2612,7 @@ void SV_GetEntityMatrix (prvm_edict_t *ent, matrix4x4_t *out, qboolean viewmatri { prvm_eval_t *val; float scale; - float WTFsign; + float pitchsign; int modelindex; dp_model_t *model; @@ -2625,7 +2625,7 @@ void SV_GetEntityMatrix (prvm_edict_t *ent, matrix4x4_t *out, qboolean viewmatri 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 * cl_viewmodel_scale.value); else { - WTFsign = 1; + pitchsign = 1; if ( ((modelindex = (int)ent->fields.server->modelindex) >= 1 && modelindex < MAX_MODELS && (model = sv.models[(int)ent->fields.server->modelindex])) ? @@ -2637,8 +2637,8 @@ void SV_GetEntityMatrix (prvm_edict_t *ent, matrix4x4_t *out, qboolean viewmatri ((gamemode == GAME_TENEBRAE) && ((unsigned int)ent->fields.server->effects & (16 | 32))) ) ) - WTFsign = -1; - Matrix4x4_CreateFromQuakeEntity(out, ent->fields.server->origin[0], ent->fields.server->origin[1], ent->fields.server->origin[2], WTFsign * ent->fields.server->angles[0], ent->fields.server->angles[1], ent->fields.server->angles[2], scale); + pitchsign = -1; + Matrix4x4_CreateFromQuakeEntity(out, ent->fields.server->origin[0], ent->fields.server->origin[1], ent->fields.server->origin[2], pitchsign * ent->fields.server->angles[0], ent->fields.server->angles[1], ent->fields.server->angles[2], scale); } } -- 2.39.2