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)