From: havoc Date: Fri, 17 Jan 2020 06:24:40 +0000 (+0000) Subject: R_CanSeeBox no longer uses collision_cache for the random traces, only the fixed... X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=b84a71ff183fbe72b25ae6149fcb56ffd5bb685b;p=xonotic%2Fdarkplaces.git R_CanSeeBox no longer uses collision_cache for the random traces, only the fixed positions (corners, etc), random rays were simply wasting resources in the collision_cache. git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12494 d7cf8633-e32d-0410-b094-e92efae38249 --- diff --git a/gl_rmain.c b/gl_rmain.c index d5412af8..2c66ba0a 100644 --- a/gl_rmain.c +++ b/gl_rmain.c @@ -3955,7 +3955,7 @@ qboolean R_CanSeeBox(int numsamples, vec_t eyejitter, vec_t entboxenlarge, vec_t end[0] = boxmins[0] + (boxmaxs[0] - boxmins[0]) * positions[i][0]; end[1] = boxmins[1] + (boxmaxs[1] - boxmins[1]) * positions[i][1]; end[2] = boxmins[2] + (boxmaxs[2] - boxmins[2]) * positions[i][2]; - //trace_t trace = CL_TraceLine(start, end, MOVE_NOMONSTERS, NULL, SUPERCONTENTS_SOLID, SUPERCONTENTS_SKY, 0.0f, true, false, NULL, true, true); + //trace_t trace = CL_TraceLine(start, end, MOVE_NORMAL, NULL, SUPERCONTENTS_SOLID, SUPERCONTENTS_SKY, MATERIALFLAGMASK_TRANSLUCENT, 0.0f, true, false, NULL, true, true); trace_t trace = CL_Cache_TraceLineSurfaces(start, end, MOVE_NORMAL, SUPERCONTENTS_SOLID, 0, MATERIALFLAGMASK_TRANSLUCENT); // not picky - if the trace ended anywhere in the box we're good if (BoxesOverlap(trace.endpos, trace.endpos, padmins, padmaxs)) @@ -3972,7 +3972,7 @@ qboolean R_CanSeeBox(int numsamples, vec_t eyejitter, vec_t entboxenlarge, vec_t VectorSet(end, lhrandom(boxmins[0], boxmaxs[0]), lhrandom(boxmins[1], boxmaxs[1]), lhrandom(boxmins[2], boxmaxs[2])); if (r_cullentities_trace_entityocclusion.integer) { - trace_t trace = CL_Cache_TraceLineSurfaces(start, end, MOVE_NORMAL, SUPERCONTENTS_SOLID, 0, MATERIALFLAGMASK_TRANSLUCENT); + trace_t trace = CL_TraceLine(start, end, MOVE_NORMAL, NULL, SUPERCONTENTS_SOLID, SUPERCONTENTS_SKY, MATERIALFLAGMASK_TRANSLUCENT, 0.0f, true, false, NULL, true, true); // not picky - if the trace ended anywhere in the box we're good if (BoxesOverlap(trace.endpos, trace.endpos, padmins, padmaxs)) return true;