From 77c1e95701f6234c79824bfc63d16e2e2dc5485a Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Sat, 30 Nov 2019 12:59:36 +0100 Subject: [PATCH] product:: cspin and also cmirror --- nonisotropic.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/nonisotropic.cpp b/nonisotropic.cpp index 5d72badb..7500c3e2 100644 --- a/nonisotropic.cpp +++ b/nonisotropic.cpp @@ -1280,14 +1280,14 @@ EX namespace product { hrmap_product() { current_spin_invalid = false; - if(cspin) { + if(cspin || cmirror) { in_underlying([&] { twisted = validate_spin(); if(!twisted) { current_spin_invalid = true; return; } auto ugs = currentmap->gamestart(); spins[ugs] = make_pair( - cellwalker(ugs, gmod(+cspin, ugs->type)), - cellwalker(ugs, gmod(-cspin, ugs->type)) + cellwalker(ugs, gmod(+cspin, ugs->type), cmirror), + cellwalker(ugs, gmod(-cspin, ugs->type), cmirror) ); manual_celllister cl; cl.add(ugs); @@ -1305,6 +1305,7 @@ EX namespace product { EX bool current_spin_invalid; EX int cwall_offset, cwall_mask, actual_view_level, csteps, cspin; + EX bool cmirror; EX void drawcell_stack(cellwalker cw, transmatrix V) { cell *c = cw.at; @@ -1387,7 +1388,7 @@ EX namespace product { manual_celllister cl; cell *start = currentmap->gamestart(); cl.add(start); - cws[start] = cellwalker(start, cspin); + cws[start] = cellwalker(start, gmod(cspin, start->type), cmirror); for(int i=0; i