]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - model_brush.c
avoid some crashes when recursing BIHs
[xonotic/darkplaces.git] / model_brush.c
index 37285c6b03372cd49a00a8c3b5d6e8939d7d018e..1051d280c0ba76388f67013bd1651d46ecee1396 100644 (file)
@@ -5991,6 +5991,9 @@ void Mod_CollisionBIH_TracePoint(dp_model_t *model, const frameblend_t *frameble
        trace->hitsupercontentsmask = hitsupercontentsmask;
 
        bih = &model->collision_bih;
+       if(!bih->nodes)
+               return;
+
        nodenum = bih->rootnode;
        nodestack[nodestackpos++] = nodenum;
        while (nodestackpos)
@@ -6047,6 +6050,9 @@ void Mod_CollisionBIH_TraceLineShared(dp_model_t *model, const frameblend_t *fra
        vec_t d1, d2, d3, d4, f, nodestackline[1024][6];
        int axis, nodenum, nodestackpos = 0, nodestack[1024];
 
+       if(!bih->nodes)
+               return;
+
        if (VectorCompare(start, end))
        {
                Mod_CollisionBIH_TracePoint(model, frameblend, skeleton, trace, start, hitsupercontentsmask);
@@ -6180,6 +6186,8 @@ void Mod_CollisionBIH_TraceBrush(dp_model_t *model, const frameblend_t *frameble
        }
 
        bih = &model->collision_bih;
+       if(!bih->nodes)
+               return;
        nodenum = bih->rootnode;
 
        // box trace, performed as brush trace