mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-11-27 06:27:17 +00:00
fixed some bugs when faking Euclidean
This commit is contained in:
parent
ce299c1a0c
commit
fca9834d02
@ -1189,6 +1189,9 @@ EX void generate() {
|
||||
|
||||
auto& cs = cgi.cellshape;
|
||||
|
||||
cgi.loop = 4;
|
||||
cgi.schmid = 3;
|
||||
|
||||
if(S7 == 6) {
|
||||
cgi.adjcheck = 1;
|
||||
cgi.face = 4;
|
||||
@ -1245,6 +1248,8 @@ EX void generate() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
reg3::make_vertices_only();
|
||||
|
||||
}
|
||||
|
||||
|
@ -1173,6 +1173,7 @@ EX struct fpattern& getcurrfp() {
|
||||
fp.Prime = 11; fp.force_hash = 0x363D8DA4u; fp.solve();
|
||||
return fp;
|
||||
}
|
||||
if(!hyperbolic) return fp_invalid;
|
||||
if(WDIM == 3 && !quotient && !hybri && !bt::in()) {
|
||||
static fpattern fp(0);
|
||||
if(fp.Prime) return fp;
|
||||
@ -1180,7 +1181,6 @@ EX struct fpattern& getcurrfp() {
|
||||
DEBB(DF_FIELD, ("set prime = ", fp.Prime));
|
||||
return fp;
|
||||
}
|
||||
if(!hyperbolic) return fp_invalid;
|
||||
if(S7 == 8 && S3 == 3 && !bt::in()) {
|
||||
static fpattern fp(17);
|
||||
return fp;
|
||||
|
19
reg3.cpp
19
reg3.cpp
@ -80,6 +80,16 @@ EX namespace reg3 {
|
||||
cgi.ultra_mirrors.push_back(rspintox(v) * xpush(cgi.ultra_mirror_dist*2) * MirrorX * spintox(v));
|
||||
}
|
||||
|
||||
EX void make_vertices_only() {
|
||||
auto& vertices_only = cgi.vertices_only;
|
||||
vertices_only.clear();
|
||||
for(hyperpoint h: cgi.cellshape) {
|
||||
bool found = false;
|
||||
for(hyperpoint h2: vertices_only) if(hdist(h, h2) < 1e-6) found = true;
|
||||
if(!found) vertices_only.push_back(h);
|
||||
}
|
||||
}
|
||||
|
||||
EX void generate() {
|
||||
|
||||
if(fake::in()) {
|
||||
@ -89,7 +99,6 @@ EX namespace reg3 {
|
||||
|
||||
int& loop = cgi.loop;
|
||||
int& face = cgi.face;
|
||||
auto& vertices_only = cgi.vertices_only;
|
||||
auto& spins = cgi.spins;
|
||||
auto& cellshape = cgi.cellshape;
|
||||
auto& adjcheck = cgi.adjcheck;
|
||||
@ -241,13 +250,7 @@ EX namespace reg3 {
|
||||
for(auto& v: cellshape) v = T * v;
|
||||
}
|
||||
|
||||
vertices_only.clear();
|
||||
for(hyperpoint h: cellshape) {
|
||||
bool found = false;
|
||||
for(hyperpoint h2: vertices_only) if(hdist(h, h2) < 1e-6) found = true;
|
||||
if(!found) vertices_only.push_back(h);
|
||||
}
|
||||
|
||||
make_vertices_only();
|
||||
compute_ultra();
|
||||
|
||||
for(int a=0; a<S7; a++)
|
||||
|
Loading…
Reference in New Issue
Block a user