#ifdef COLLISION_STUPID_TRACE_ENDPOS_IN_SOLID_WORKAROUND
cvar_t collision_endposnudge = {0, "collision_endposnudge", "0", "workaround to fix trace_endpos sometimes being returned where it would be inside solid by making that collision hit (recommended: values like 1)"};
#endif
+cvar_t collision_debug_tracelineasbox = {0, "collision_debug_tracelineasbox", "0", "workaround for any bugs in Collision_TraceLineBrushFloat by using Collision_TraceBrushBrushFloat"};
void Collision_Init (void)
{
#ifdef COLLISION_STUPID_TRACE_ENDPOS_IN_SOLID_WORKAROUND
Cvar_RegisterVariable(&collision_endposnudge);
#endif
+ Cvar_RegisterVariable(&collision_debug_tracelineasbox);
}
VectorCopy(startplane, startdepthnormal);
}
- if (startdist >= -collision_impactnudge.value && enddist >= startdist)
- return;
- if (startdist <= 0 && enddist <= 0)
- continue;
if (startdist > enddist)
{
// moving into brush
vec_t startdepth = 1;
vec3_t startdepthnormal;
+ if (collision_debug_tracelineasbox.integer)
+ {
+ colboxbrushf_t thisbrush_start, thisbrush_end;
+ Collision_BrushForBox(&thisbrush_start, linestart, linestart, 0, 0, NULL);
+ Collision_BrushForBox(&thisbrush_end, lineend, lineend, 0, 0, NULL);
+ Collision_TraceBrushBrushFloat(trace, &thisbrush_start.brush, &thisbrush_end.brush, other_start, other_end);
+ return;
+ }
+
VectorClear(startdepthnormal);
Vector4Clear(newimpactplane);
VectorCopy(startplane, startdepthnormal);
}
- if (startdist >= -collision_impactnudge.value && enddist >= startdist)
- return;
- if (startdist <= 0 && enddist <= 0)
- continue;
if (startdist > enddist)
{
// moving into brush
boxbrush->brush.texture = texture;
VectorSet(boxbrush->brush.mins, mins[0] - 1, mins[1] - 1, mins[2] - 1);
VectorSet(boxbrush->brush.maxs, maxs[0] + 1, maxs[1] + 1, maxs[2] + 1);
- Collision_ValidateBrush(&boxbrush->brush);
+ //Collision_ValidateBrush(&boxbrush->brush);
}
void Collision_ClipTrace_BrushBox(trace_t *trace, const vec3_t cmins, const vec3_t cmaxs, const vec3_t start, const vec3_t mins, const vec3_t maxs, const vec3_t end, int hitsupercontentsmask, int supercontents, int q3surfaceflags, texture_t *texture)