From 5bd291784b42c761d7332a21a2dc7609627b406e Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Sat, 21 Mar 2020 09:28:16 +0100 Subject: [PATCH] kite:: sidewalls were not arranged correctly --- floorshapes.cpp | 4 ++-- geometry2.cpp | 20 ++++++++++++++++++++ graph.cpp | 4 ++-- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/floorshapes.cpp b/floorshapes.cpp index 1cffd9e7..7b4fec86 100644 --- a/floorshapes.cpp +++ b/floorshapes.cpp @@ -448,8 +448,8 @@ void geometry_information::generate_floorshapes_for(int id, cell *c, int siid, i for(int cid=0; cidspin_to(c, d, bonus); } EX transmatrix iddspin(cell *c, int d, ld bonus IS(0)) { return currentmap->spin_from(c, d, bonus); } EX ld cellgfxdist(cell *c, int d) { return currentmap->spacedist(c, d); } + +EX transmatrix ddspin_side(cell *c, int d, ld bonus IS(0)) { + if(kite::in()) { + hyperpoint h1 = get_corner_position(c, gmod(d, c->type), 3); + hyperpoint h2 = get_corner_position(c, gmod(d+1, c->type) , 3); + hyperpoint hm = mid(h1, h2); + return rspintox(hm) * spin(bonus); + } + return currentmap->spin_to(c, d, bonus); + } + +EX transmatrix iddspin_side(cell *c, int d, ld bonus IS(0)) { + if(kite::in()) { + hyperpoint h1 = get_corner_position(c, gmod(d, c->type), 3); + hyperpoint h2 = get_corner_position(c, gmod(d+1, c->type) , 3); + hyperpoint hm = mid(h1, h2); + return spintox(hm) * spin(bonus); + } + return currentmap->spin_from(c, d, bonus); + } double hrmap_standard::spacedist(cell *c, int i) { if(NONSTDVAR || WDIM == 3) return hrmap::spacedist(c, i); diff --git a/graph.cpp b/graph.cpp index 3e585bea..f2c3fcff 100644 --- a/graph.cpp +++ b/graph.cpp @@ -3337,8 +3337,8 @@ EX bool placeSidewall(cell *c, int i, int sidepar, const transmatrix& V, color_t else prio = PPR::REDWALL-2+4*(sidepar-SIDE_SLEV); dynamicval ncor(approx_nearcorner, true); - transmatrix V2 = V * ddspin(c, i); - + transmatrix V2 = V * ddspin_side(c, i); + if(NONSTDVAR || !standard_tiling()) { #if CAP_ARCM if(arcm::in() && !PURE)