diff --git a/barriers.cpp b/barriers.cpp index e8082cf0..dafd13c3 100644 --- a/barriers.cpp +++ b/barriers.cpp @@ -560,7 +560,7 @@ EX bool isbar4(cell *c) { EX bool barrier_cross(eLand l, eLand r) { if(l == laCrossroads3 || r == laCrossroads3) return hrand(100) < 66; - if(land_structure == lsCrossWalls) return hrand(100) < 90; + if(land_structure == lsCrossWalls && !among(laCrossroads2, l, r)) return hrand(100) < 90; if(isElemental(l) && isElemental(r)) return hrand(100) < 75; return false; } @@ -616,7 +616,7 @@ EX void extendBarrier(cell *c) { if(buildBarrier6(cw, 2)) return; } - if(land_structure == lsCursedWalls && c->barleft != laMirror && c->barright != laMirror && hrand(100) < 80) { + if(land_structure == lsCursedWalls && c->barleft != laMirror && c->barright != laMirror && hrand(100) < 80 && !among(laCrossroads2, c->barleft, c->barright)) { cellwalker cw(c, c->bardir); cw = cw + wstep + 3 + wstep - 1; if(buildBarrier6(cw, c->barright, c->barleft)) return;