hexen2 angle fixes... reminds me... I should look at hipnotics rotating stuff some time... If only I HAD hipnotic. Can someone test and tell me if I got rotating pitches correct?
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@439 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
93a54a0a0d
commit
a5f4315437
1 changed files with 24 additions and 8 deletions
|
@ -529,7 +529,7 @@ void SV_LinkEdict (edict_t *ent, qboolean touch_triggers)
|
|||
return;
|
||||
|
||||
// set the abs box
|
||||
/* if (ent->v.solid == SOLID_BSP &&
|
||||
if (ent->v.solid == SOLID_BSP &&
|
||||
(ent->v.angles[0] || ent->v.angles[1] || ent->v.angles[2]) )
|
||||
{ // expand for rotation
|
||||
int i;
|
||||
|
@ -539,7 +539,14 @@ void SV_LinkEdict (edict_t *ent, qboolean touch_triggers)
|
|||
|
||||
//we need to link to the correct leaves
|
||||
|
||||
AngleVectors(ent->v.angles, f,r,u);
|
||||
if (progstype == PROG_H2)
|
||||
{
|
||||
ent->v.angles[0]*=-1;
|
||||
AngleVectors(ent->v.angles, f,r,u);
|
||||
ent->v.angles[0]*=-1;
|
||||
}
|
||||
else
|
||||
AngleVectors(ent->v.angles, f,r,u);
|
||||
|
||||
mn[0] = DotProduct(ent->v.mins, f);
|
||||
mn[1] = -DotProduct(ent->v.mins, r);
|
||||
|
@ -552,17 +559,17 @@ void SV_LinkEdict (edict_t *ent, qboolean touch_triggers)
|
|||
{
|
||||
if (mn[i] < mx[i])
|
||||
{
|
||||
ent->v.absmin[i] = ent->v.origin[i]+mn[i];
|
||||
ent->v.absmax[i] = ent->v.origin[i]+mx[i];
|
||||
ent->v.absmin[i] = ent->v.origin[i]+mn[i]-0.1;
|
||||
ent->v.absmax[i] = ent->v.origin[i]+mx[i]+0.1;
|
||||
}
|
||||
else
|
||||
{ //box went inside out
|
||||
ent->v.absmin[i] = ent->v.origin[i]+mx[i];
|
||||
ent->v.absmax[i] = ent->v.origin[i]+mn[i];
|
||||
ent->v.absmin[i] = ent->v.origin[i]+mx[i]-0.1;
|
||||
ent->v.absmax[i] = ent->v.origin[i]+mn[i]+0.1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else*/
|
||||
else
|
||||
{
|
||||
VectorAdd (ent->v.origin, ent->v.mins, ent->v.absmin);
|
||||
VectorAdd (ent->v.origin, ent->v.maxs, ent->v.absmax);
|
||||
|
@ -1139,7 +1146,16 @@ trace_t SV_ClipMoveToEntity (edict_t *ent, vec3_t start, vec3_t mins, vec3_t max
|
|||
VectorSubtract (end, offset, end_l);
|
||||
|
||||
// trace a line through the apropriate clipping hull
|
||||
TransformedHullCheck(hull, start_l, end_l, &trace, ent->v.angles);
|
||||
if (progstype == PROG_H2 && ent->v.solid == SOLID_BSP)
|
||||
{
|
||||
ent->v.angles[0]*=-1;
|
||||
TransformedHullCheck(hull, start_l, end_l, &trace, ent->v.angles);
|
||||
ent->v.angles[0]*=-1;
|
||||
}
|
||||
else
|
||||
{
|
||||
TransformedHullCheck(hull, start_l, end_l, &trace, ent->v.angles);
|
||||
}
|
||||
|
||||
// fix trace up by the offset
|
||||
if (trace.fraction != 1)
|
||||
|
|
Loading…
Reference in a new issue