game/server/server_physics.c
/*	Does not change the entities velocity at all
*/
Does not change the entities velocity at all
Does not change the entities velocity at all
trace_t Physics_PushEntity(ServerEntity_t *eEntity, MathVector3f_t mvPush)
{
	trace_t	trace;
	MathVector3f_t	end;
	Math_VectorAdd(eEntity->v.origin, mvPush, end);
	if (eEntity->v.movetype == (MOVETYPE_FLYMISSILE || MOVETYPE_FLYBOUNCE))
		trace = Engine.Server_Move(eEntity->v.origin, eEntity->v.mins, eEntity->v.maxs, end, MOVE_MISSILE, eEntity);
	else if (eEntity->Physics.iSolid == SOLID_TRIGGER || eEntity->Physics.iSolid == SOLID_NOT)
		trace = Engine.Server_Move(eEntity->v.origin, eEntity->v.mins, eEntity->v.maxs, end, MOVE_NOMONSTERS, eEntity);
	else
		trace = Engine.Server_Move(eEntity->v.origin, eEntity->v.mins, eEntity->v.maxs, end, MOVE_NORMAL, eEntity);
	Math_VectorCopy(trace.endpos, eEntity->v.origin);
	Entity_Link(eEntity, true);
	if (trace.ent)
		Physics_Impact(eEntity, trace.ent);
	return trace;
}
trace_t Physics_PushEntity ( ServerEntity_t * eEntity , MathVector3f_t mvPush ) { trace_t trace ; MathVector3f_t end ; Math_VectorAdd ( eEntity -> v . origin , mvPush , end ) ; if ( eEntity -> v . movetype == ( MOVETYPE_FLYMISSILE || MOVETYPE_FLYBOUNCE ) ) trace = Engine . Server_Move ( eEntity -> v . origin , eEntity -> v . mins , eEntity -> v . maxs , end , MOVE_MISSILE , eEntity ) ; else if ( eEntity -> Physics . iSolid == SOLID_TRIGGER || eEntity -> Physics . iSolid == SOLID_NOT ) trace = Engine . Server_Move ( eEntity -> v . origin , eEntity -> v . mins , eEntity -> v . maxs , end , MOVE_NOMONSTERS , eEntity ) ; else trace = Engine . Server_Move ( eEntity -> v . origin , eEntity -> v . mins , eEntity -> v . maxs , end , MOVE_NORMAL , eEntity ) ; Math_VectorCopy ( trace . endpos , eEntity -> v . origin ) ; Entity_Link ( eEntity , true ) ; if ( trace . ent ) Physics_Impact ( eEntity , trace . ent ) ; return trace ; }
Does not change the entities velocity at all
Does not change the entities velocity at all
// only clip against bmodels