trace = SV_Move (neworg, ent->v->mins, ent->v->maxs, end, MOVE_NORMAL, ent);
- if (trace.allsolid)
- return false;
-
if (trace.startsolid)
{
neworg[2] -= sv_stepheight.value;
trace = SV_Move (neworg, ent->v->mins, ent->v->maxs, end, MOVE_NORMAL, ent);
- if (trace.allsolid || trace.startsolid)
+ if (trace.startsolid)
return false;
}
if (trace.fraction == 1)
trace = SV_Move (ent->v->origin, ent->v->mins, ent->v->maxs, end, MOVE_NORMAL, ent);
//Con_Printf("trace %f %f %f : %f : %f %f %f\n", trace.endpos[0], trace.endpos[1], trace.endpos[2], trace.fraction, trace.plane.normal[0], trace.plane.normal[1], trace.plane.normal[2]);
- if (trace.allsolid)
+ /*
+ if (trace.startsolid)
{
// LordHavoc: note: this code is what makes entities stick in place if embedded in another object (which can be the world)
// entity is trapped in another solid
VectorClear(ent->v->velocity);
return 3;
}
+ */
if (trace.fraction > 0)
{
trace = SV_Move (ent->v->origin, ent->v->mins, ent->v->maxs, end, MOVE_NORMAL, ent);
- if (trace.allsolid)
+ /*
+ if (trace.startsolid)
{
// LordHavoc: note: this code is what makes entities stick in place if embedded in another object (which can be the world)
// entity is trapped in another solid
VectorClear(ent->v->velocity);
return 3;
}
+ */
if (trace.fraction > 0)
{
tr = SV_Move (top, vec3_origin, vec3_origin, bottom, MOVE_NOMONSTERS, sv_player);
// if looking at a wall, leave ideal the way is was
- if (tr.allsolid)
+ if (tr.startsolid)
return;
// near a dropoff