summaryrefslogtreecommitdiff
path: root/source/sv_world.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/sv_world.c')
-rw-r--r--source/sv_world.c57
1 files changed, 19 insertions, 38 deletions
diff --git a/source/sv_world.c b/source/sv_world.c
index 9f5b71d..cffc332 100644
--- a/source/sv_world.c
+++ b/source/sv_world.c
@@ -323,7 +323,6 @@ void PF_LinkEdict (edict_t *ent) {
List_Append( &node->trigger_edicts, &ent->area );
else
List_Append( &node->solid_edicts, &ent->area );
-
}
@@ -467,9 +466,8 @@ int SV_PointContents (vec3_t p)
typedef struct {
vec3_t boxmins, boxmaxs;// enclose the test object along entire move
- float *mins, *maxs; // size of the moving object
- vec3_t mins2, maxs2; // size when clipping against mosnters
- float *start, *end;
+ vec_t *mins, *maxs; // size of the moving object
+ vec_t *start, *end;
trace_t *trace;
edict_t *passedict;
int contentmask;
@@ -521,14 +519,9 @@ void SV_ClipMoveToEntities ( moveclip_t *clip )
if (touch->solid != SOLID_BSP)
angles = vec3_origin; // boxes don't rotate
- if (touch->svflags & SVF_MONSTER)
- CM_TransformedBoxTrace (&trace, clip->start, clip->end,
- clip->mins2, clip->maxs2, headnode, clip->contentmask,
- touch->s.origin, angles);
- else
- CM_TransformedBoxTrace (&trace, clip->start, clip->end,
- clip->mins, clip->maxs, headnode, clip->contentmask,
- touch->s.origin, angles);
+ CM_TransformedBoxTrace (&trace, clip->start, clip->end,
+ clip->mins, clip->maxs, headnode, clip->contentmask,
+ touch->s.origin, angles);
clip->trace->allsolid |= trace.allsolid;
clip->trace->startsolid |= trace.startsolid;
@@ -549,21 +542,16 @@ void SV_ClipMoveToEntities ( moveclip_t *clip )
SV_TraceBounds
==================
*/
-static void SV_TraceBounds (vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, vec3_t boxmins, vec3_t boxmaxs)
-{
+static void SV_TraceBounds (moveclip_t *clip) {
int i;
- for (i=0 ; i<3 ; i++)
- {
- if (end[i] > start[i])
- {
- boxmins[i] = start[i] + mins[i] - 1;
- boxmaxs[i] = end[i] + maxs[i] + 1;
- }
- else
- {
- boxmins[i] = end[i] + mins[i] - 1;
- boxmaxs[i] = start[i] + maxs[i] + 1;
+ for (i=0 ; i<3 ; i++) {
+ if (clip->end[i] > clip->start[i]) {
+ clip->boxmins[i] = clip->start[i] + clip->mins[i] - 1;
+ clip->boxmaxs[i] = clip->end[i] + clip->maxs[i] + 1;
+ } else {
+ clip->boxmins[i] = clip->end[i] + clip->mins[i] - 1;
+ clip->boxmaxs[i] = clip->start[i] + clip->maxs[i] + 1;
}
}
}
@@ -608,7 +596,7 @@ trace_t SV_Trace (vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, edict_t *p
return trace; // blocked by the world
}
- memset ( &clip, 0, sizeof ( moveclip_t ) );
+ memset( &clip, 0, sizeof( clip ) );
clip.trace = &trace;
clip.contentmask = contentmask;
clip.start = start;
@@ -616,18 +604,14 @@ trace_t SV_Trace (vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, edict_t *p
clip.mins = mins;
clip.maxs = maxs;
clip.passedict = passedict;
-
- VectorCopy (mins, clip.mins2);
- VectorCopy (maxs, clip.maxs2);
// create the bounding box of the entire move
- SV_TraceBounds ( start, clip.mins2, clip.maxs2, end, clip.boxmins, clip.boxmaxs );
+ SV_TraceBounds( &clip );
// clip to other solid entities
- SV_ClipMoveToEntities ( &clip );
+ SV_ClipMoveToEntities( &clip );
return trace;
-
}
/*
@@ -677,7 +661,7 @@ trace_t *SV_Trace_Old (trace_t *trace, vec3_t start, vec3_t mins, vec3_t maxs, v
return trace; // blocked by the world
}
- memset ( &clip, 0, sizeof ( moveclip_t ) );
+ memset( &clip, 0, sizeof( clip ) );
clip.trace = trace;
clip.contentmask = contentmask;
clip.start = start;
@@ -685,15 +669,12 @@ trace_t *SV_Trace_Old (trace_t *trace, vec3_t start, vec3_t mins, vec3_t maxs, v
clip.mins = mins;
clip.maxs = maxs;
clip.passedict = passedict;
-
- VectorCopy (mins, clip.mins2);
- VectorCopy (maxs, clip.maxs2);
// create the bounding box of the entire move
- SV_TraceBounds ( start, clip.mins2, clip.maxs2, end, clip.boxmins, clip.boxmaxs );
+ SV_TraceBounds( &clip );
// clip to other solid entities
- SV_ClipMoveToEntities ( &clip );
+ SV_ClipMoveToEntities( &clip );
return trace;
}