git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@3598
d7cf8633-e32d-0410-b094-
e92efae38249
trace = SV_Move (neworg, ent->v->mins, ent->v->maxs, end, MOVE_NORMAL, ent);
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.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)
return false;
}
if (trace.fraction == 1)
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]);
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.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;
}
{
// 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)
{
if (trace.fraction > 0)
{
trace = SV_Move (ent->v->origin, ent->v->mins, ent->v->maxs, end, MOVE_NORMAL, ent);
trace = SV_Move (ent->v->origin, ent->v->mins, ent->v->maxs, end, MOVE_NORMAL, ent);
+ /*
+ 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;
}
{
// 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)
{
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
tr = SV_Move (top, vec3_origin, vec3_origin, bottom, MOVE_NOMONSTERS, sv_player);
// if looking at a wall, leave ideal the way is was
return;
// near a dropoff
return;
// near a dropoff