diff --git a/archimedean.cpp b/archimedean.cpp index d5c8b9b7..a74dbf8e 100644 --- a/archimedean.cpp +++ b/archimedean.cpp @@ -792,7 +792,8 @@ struct hrmap_archimedean : hrmap { void find_cell_connection(cell *c, int d) override { if(PURE) { if(arcm::id_of(c->master) < arcm::current.N * 2) { - heptspin hs = heptspin(c->master, d) + wstep + 2 + wstep + 1; + bool rev = (precision_policy & 1) && hrand(2); + heptspin hs = rev ? heptspin(c->master, d) - 1 + wstep - 2 + wstep: heptspin(c->master, d) + wstep + 2 + wstep + 1; c->c.connect(d, hs.at->c7, hs.spin, hs.mirrored); } else c->c.connect(d, c, d, false); diff --git a/landgen.cpp b/landgen.cpp index a80260a7..4c1800a9 100644 --- a/landgen.cpp +++ b/landgen.cpp @@ -3124,10 +3124,12 @@ EX void setdist(cell *c, int d, cell *from) { exploreland[d][c->land]++; } - if(d < BARLEV) for(int i=0; itype; i++) { - - setdist(createMov(c, i), d+1, c); - if(buggyGeneration) return; + if(d < BARLEV) { + bool rev = (precision_policy & 1) && currentmap->get_backmap() && hrand(2); + for(int i=0; itype; i++) { + setdist(createMov(c, rev ? (c->type-1-i) : i), d+1, c); + if(buggyGeneration) return; + } } int eqlevel = max(BARLEV-2, 7);