currfp returns fp_invalid when fp is not known, and does not use it

This commit is contained in:
Zeno Rogue 2018-11-30 14:39:23 +01:00
parent bf7bb61d35
commit f7db0feef0
4 changed files with 7 additions and 3 deletions

View File

@ -721,7 +721,9 @@ fpattern& getcurrfp() {
return fp; return fp;
} }
if(sphere || euclid) return fp_invalid; if(sphere || euclid) return fp_invalid;
return fp43; if(S7 == 7 && S3 == 3)
return fp43;
return fp_invalid;
} }
// extra information for field quotient extra configuration // extra information for field quotient extra configuration

View File

@ -5823,7 +5823,7 @@ auto graphcm = addHook(clearmemory, 0, [] () {
void resetGeometry() { void resetGeometry() {
precalc(); precalc();
if(hyperbolic) currfp.analyze(); if(hyperbolic && &currfp != &fieldpattern::fp_invalid) currfp.analyze();
#if CAP_GL #if CAP_GL
resetGL(); resetGL();
#endif #endif

View File

@ -74,7 +74,8 @@ heptagon *buildHeptagon(heptagon *parent, int d, hstate s, int pard = 0, int fix
h->rval0 = h->rval1 = 0; h->rval0 = h->rval1 = 0;
h->emeraldval = emerald_heptagon(parent->emeraldval, d); h->emeraldval = emerald_heptagon(parent->emeraldval, d);
h->zebraval = zebra_heptagon(parent->zebraval, d); h->zebraval = zebra_heptagon(parent->zebraval, d);
h->fieldval = currfp.connections[fieldpattern::btspin(parent->fieldval, d)]; if(&currfp != &fieldpattern::fp_invalid)
h->fieldval = currfp.connections[fieldpattern::btspin(parent->fieldval, d)];
if(a38) if(a38)
h->fiftyval = fifty_38(parent->fiftyval, d); h->fiftyval = fifty_38(parent->fiftyval, d);
else if(parent->s == hsOrigin) else if(parent->s == hsOrigin)

View File

@ -355,6 +355,7 @@ int fieldval_uniq(cell *c) {
return gmod(p.first * torusconfig::dx + p.second * torusconfig::dy, torusconfig::qty); return gmod(p.first * torusconfig::dx + p.second * torusconfig::dy, torusconfig::qty);
} }
else if(binarytiling || archimedean) return 0; else if(binarytiling || archimedean) return 0;
else if(&currfp == &fp_invalid) return 0;
else if(ctof(c) || NONSTDVAR) return c->master->fieldval/S7; else if(ctof(c) || NONSTDVAR) return c->master->fieldval/S7;
else { else {
int z = 0; int z = 0;