Вобщем в чем отличие Code
struct pmtrace_s *(*PM_TraceLine) (float *start, float *end, int flags, int usehull, int ignore_pe);
из cl_enginefuncs_s от обычной TraceLine из enginefuncs_s? структура PM_TraceLine:
Code
typedef struct
{
vec3_t normal;
float dist;
} pmplane_t;
typedef struct pmtrace_s pmtrace_t;
struct pmtrace_s
{
qboolean allsolid; // if true, plane is not valid
qboolean startsolid; // if true, the initial point was in a solid area
qboolean inopen, inwater; // End point is in empty space or in water
float fraction; // time completed, 1.0 = didn't hit anything
vec3_t endpos; // final position
pmplane_t plane; // surface normal at impact
int ent; // entity at impact
vec3_t deltavelocity; // Change in player's velocity caused by impact.
// Only run on server.
int hitgroup;
};
флаги PM_TraceLine:
Code
// Values for flags parameter of PM_TraceLine
#define PM_TRACELINE_ANYVISIBLE 0
#define PM_TRACELINE_PHYSENTSONLY 1