This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
{
start[0] = x ? maxs[0] : mins[0];
start[1] = y ? maxs[1] : mins[1];
- if (Mod_PointContents(start, sv.worldmodel) != CONTENTS_SOLID)
+ if (!(SV_PointSuperContents(start) & SUPERCONTENTS_SOLID))
goto realcheck;
}
if (trace.fraction == 1)
{
VectorCopy(trace.endpos, traceendpos);
- if ( ((int)ent->v->flags & FL_SWIM) && Mod_PointContents(traceendpos, sv.worldmodel) == CONTENTS_EMPTY )
+ if (((int)ent->v->flags & FL_SWIM) && !(SV_PointSuperContents(traceendpos) & SUPERCONTENTS_LIQUIDSMASK))
return false; // swim monster left water
VectorCopy (traceendpos, ent->v->origin);
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)