diff --git a/graph.cpp b/graph.cpp index a466dbc5..3100aef2 100644 --- a/graph.cpp +++ b/graph.cpp @@ -5364,7 +5364,7 @@ void queuecircleat(cell *c, double rad, color_t col) { dynamicval p(poly_outline, col); for(int i=0; itype; i++) { if(binarytiling && i < 4) continue; - queuepolyat(gmatrix[c], shBinaryWall[i], 0, PPR::LINE); + queuepolyat(gmatrix[c], shBinaryWall[i], 0, PPR::SUPERLINE); } return; } diff --git a/hyper.h b/hyper.h index 89d3b904..461a8fbf 100644 --- a/hyper.h +++ b/hyper.h @@ -2074,7 +2074,9 @@ enum class PPR { PARTICLE, SWORDMARK, MAGICSWORD, MISSILE, MINEMARK, ARROW, MOBILE_ARROW, - LINE, TEXT, CIRCLE, + LINE, + // no depth testing for SUPERLINE and above + SUPERLINE, TEXT, CIRCLE, MAX, DEFAULT = -1 }; diff --git a/polygons.cpp b/polygons.cpp index f855c10e..07d4fdf5 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -608,7 +608,7 @@ void dqi_poly::gldraw() { current_display->set_mask(ed); glhr::color2(color); - glhr::set_depthtest(model_needs_depth()); + glhr::set_depthtest(model_needs_depth() && prio < PPR::SUPERLINE); if(flags & (POLY_INVERSE | POLY_FORCE_INVERTED)) { glStencilOp( GL_ZERO, GL_ZERO, GL_ZERO); @@ -640,7 +640,7 @@ void dqi_poly::gldraw() { if(outline) { glhr::color2(outline); - glhr::set_depthtest(model_needs_depth()); + glhr::set_depthtest(model_needs_depth() && prio < PPR::SUPERLINE); glDrawArrays(GL_LINE_STRIP, offset, cnt); } }