50 start[2] =
mins[2] - 1;
51 for (
x=0 ;
x<=1 ;
x++)
52 for (
y=0 ;
y<=1 ;
y++)
71 start[0] = stop[0] = (
mins[0] +
maxs[0])*0.5;
72 start[1] = stop[1] = (
mins[1] +
maxs[1])*0.5;
78 mid = bottom = trace.
endpos[2];
81 for (
x=0 ;
x<=1 ;
x++)
82 for (
y=0 ;
y<=1 ;
y++)
84 start[0] = stop[0] =
x ?
maxs[0] :
mins[0];
85 start[1] = stop[1] =
y ?
maxs[1] :
mins[1];
113 vec3_t oldorg, neworg, end, traceendpos, entorigin, entmins, entmaxs;
128 for (
i=0 ;
i<2 ;
i++)
266 yaw = yaw*
M_PI*2 / 360;
267 move[0] =
cos(yaw)*dist;
268 move[1] =
sin(yaw)*dist;
275 if (delta > 45 && delta < 315)
315 float tdir, olddir, turnaround;
318 turnaround =
ANGLEMOD(olddir - 180);
339 tdir = d[2] == 90 ? 45 : 315;
341 tdir = d[2] == 90 ? 135 : 215;
348 if ( ((rand()&3) & 1) ||
fabs(deltay)>
fabs(deltax))
355 if (d[1]!=
DI_NODIR && d[1]!=turnaround
359 if (d[2]!=
DI_NODIR && d[2]!=turnaround
370 for (tdir=0 ; tdir<=315 ; tdir += 45)
376 for (tdir=315 ; tdir >=0 ; tdir -= 45)
404 for (
i=0 ;
i<3 ;
i++)
442 if ( (rand()&3)==1 ||
#define SUPERCONTENTS_BODY
#define SUPERCONTENTS_SOLID
#define SUPERCONTENTS_LIQUIDSMASK
cvar_t collision_extendmovelength
static int(ZEXPORT *qz_inflate)(z_stream *strm
GLint GLenum GLint GLint y
#define VectorCopy(in, out)
#define VectorAdd(a, b, out)
#define PRVM_serveredictvector(ed, fieldname)
#define PRVM_serverglobaledict(fieldname)
#define PRVM_serveredictedict(ed, fieldname)
#define PRVM_EDICT_TO_PROG(e)
#define PRVM_PROG_TO_EDICT(n)
#define PRVM_serveredictfloat(ed, fieldname)
void VM_changeyaw(prvm_prog_t *prog)
#define VM_SAFEPARMCOUNT(p, f)
trace_t SV_TraceLine(const vec3_t start, const vec3_t end, int type, prvm_edict_t *passedict, int hitsupercontentsmask, int skipsupercontentsmask, int skipmaterialflagsmask, float extend)
void SV_LinkEdict(prvm_edict_t *ent)
#define FL_PARTIALGROUND
not all corners are valid
int SV_GenericHitSuperContentsMask(const prvm_edict_t *edict)
calculates hitsupercontentsmask for a generic qc entity
int SV_PointSuperContents(const vec3_t point)
cvar_t sv_gameplayfix_nostepmoveonsteepslopes
trace_t SV_TraceBox(const vec3_t start, const vec3_t mins, const vec3_t maxs, const vec3_t end, int type, prvm_edict_t *passedict, int hitsupercontentsmask, int skipsupercontentsmask, int skipmaterialflagsmask, float extend)
traces a box move against worldmodel and all entities in the specified area
void SV_LinkEdict_TouchAreaGrid(prvm_edict_t *ent)
union prvm_edict_t::@29 priv
struct edict_engineprivate_s * server
FIXME: this server pointer really means world, not server (it is used by both server qc and client qc...
static void SV_NewChaseDir(prvm_edict_t *actor, prvm_edict_t *enemy, float dist)
qbool SV_CheckBottom(prvm_edict_t *ent)
void VM_SV_MoveToGoal(prvm_prog_t *prog)
static void SV_FixCheckBottom(prvm_edict_t *ent)
static qbool SV_CloseEnough(prvm_edict_t *ent, prvm_edict_t *goal, float dist)
static qbool SV_StepDirection(prvm_edict_t *ent, float yaw, float dist)
qbool SV_movestep(prvm_edict_t *ent, vec3_t move, qbool relink, qbool noenemy, qbool settrace)