1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-10-13 13:47:37 +00:00

mixed infinite order

This commit is contained in:
Zeno Rogue
2020-01-19 00:13:54 +01:00
parent 4fd196c6d8
commit 24b3d17eb4
6 changed files with 79 additions and 13 deletions

View File

@@ -667,6 +667,8 @@ void geometry_information::generate_floorshapes() {
#endif
else if(GOLDBERG) { /* will be generated on the fly */ }
else if(inforder::mixed()) { /* will be generated on the fly */ }
#if CAP_BT
else if(kite::in()) {
@@ -868,6 +870,34 @@ EX int shvid(cell *c) {
return kite::getshape(c->master);
else if(geometry == gBinary4 || geometry == gTernary)
return c->master->zebraval;
else if(inforder::mixed()) {
int t = c->type;
static vector<bool> computed;
if(isize(computed) <= t) computed.resize(t+1);
if(!computed[t]) {
computed[t] = true;
cell model;
heptagon modelh;
model.type = t;
modelh.type = t;
S7 = t;
for(int i=0; i<S7; i++) {
model.move(i) = &model;
modelh.move(i) = &modelh;
model.c.setspin(i, i, false);
modelh.c.setspin(i, i, false);
}
cgi.tessf = edge_of_triangle_with_angles(0, M_PI/t, M_PI/t);
cgi.crossf = cgi.tessf;
println(hlog, "generating floorshapes for ", t);
cgi.generate_floorshapes_for(t, &model, 0, 0);
cgi.finishshape();
cgi.extra_vertices();
}
return t;
}
else if(PURE)
return 0;
else