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;
}
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

View File

@ -5823,7 +5823,7 @@ auto graphcm = addHook(clearmemory, 0, [] () {
void resetGeometry() {
precalc();
if(hyperbolic) currfp.analyze();
if(hyperbolic && &currfp != &fieldpattern::fp_invalid) currfp.analyze();
#if CAP_GL
resetGL();
#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->emeraldval = emerald_heptagon(parent->emeraldval, 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)
h->fiftyval = fifty_38(parent->fiftyval, d);
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);
}
else if(binarytiling || archimedean) return 0;
else if(&currfp == &fp_invalid) return 0;
else if(ctof(c) || NONSTDVAR) return c->master->fieldval/S7;
else {
int z = 0;