diff --git a/crystal.cpp b/crystal.cpp index f7369da4..e7168aab 100644 --- a/crystal.cpp +++ b/crystal.cpp @@ -439,6 +439,8 @@ color_t colorize(cell *c) { return res; } +colortable coordcolors = {0x4040D0, 0x40D040, 0xD04040, 0xFFD500, 0xF000F0, 0x00F0F0, 0xF0F0F0 }; + bool crystal_cell(cell *c, transmatrix V) { if(geometry != gCrystal) return false; @@ -448,24 +450,25 @@ bool crystal_cell(cell *c, transmatrix V) { queuestr(V, 0.3, its(d), 0xFFFFFF, 1); } - if(view_coordinates && cheater) for(int i=0; imaster->c7 == c) { - transmatrix V1 = cellrelmatrix(c, i); - ld dist = hdist0(V1 * C0); - ld alpha = -atan2(V1 * C0); - transmatrix T = V * spin(alpha) * xpush(dist*.3); - - auto co = m->hcoords[c->master]; - int our_id = 0; - for(int a=0; acs.cmap[our_id][i]; - - int coordcolors[MAXDIM] = {0x4040D0, 0x40D040, 0xD04040, 0xFFD500, 0xF000F0, 0x00F0F0, 0xF0F0F0 }; - queuestr(T, 0.3, its(co[cx>>1] / (ginf[gCrystal].vertex == 3 ? HALFSTEP : FULLSTEP)), coordcolors[cx>>1], 1); + bool bitr = ginf[gCrystal].vertex == 3; + + if(c->master->c7 == c && !is_bi(m->cs, m->hcoords[c->master])) { + + ld dist = cellgfxdist(c, 0); + + for(int i=0; ihcoords[c->master]; + auto lw = m->makewalker(co, i); + int cx = m->cs.cmap[lw.id][i]; + + queuestr(T, 0.3, its(co[cx>>1] / FULLSTEP), coordcolors[cx>>1], 1); + } } } return false;