+static void draw_bsp_tree(struct bspnode *n, const vec3_t *vdir)
+{
+ float dot;
+
+ if(!n) return;
+
+ dot = vdir->x * n->plane.nx + vdir->y * n->plane.ny + vdir->z * n->plane.nz;
+ if(dot >= 0.0f) {
+ draw_bsp_tree(n->front, vdir);
+ g3d_draw_indexed(n->vcount, n->verts, n->vcount, 0, 0);
+ draw_bsp_tree(n->back, vdir);
+ } else {
+ draw_bsp_tree(n->back, vdir);
+ g3d_draw_indexed(n->vcount, n->verts, n->vcount, 0, 0);
+ draw_bsp_tree(n->front, vdir);
+ }
+}
+