1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-05-07 09:44:08 +00:00

rogueviz::seuphorica:: canonical paths on hyperbolic boards

This commit is contained in:
Zeno Rogue 2025-03-08 12:53:26 +01:00
parent 7830e45109
commit 4aea0d20ab

View File

@ -107,6 +107,9 @@ string spotname(cell *c) {
else if(disksize || closed_manifold) {
return "#" + its(list_order[c]);
}
else if(currentmap->strict_tree_rules()) {
return lalign(0, rulegen::canonical_path_to(c->master));
}
else {
hyperpoint h = calc_relative_matrix(c, currentmap->gamestart(), C0) * C0;
return lalign(0, kz(h));
@ -117,20 +120,6 @@ cellwalker getback(cellwalker& cw) {
return cw + rev;
}
vector<int> get_path(coord c) {
if(euc::in()) {
auto co = euc2_coordinates(c);
return {0,0,0,-co.first,0,0,0,-co.second,0,0,0};
}
else if(closed_manifold) {
return {0,0,0,list_order[c],0,0,0};
}
else {
hyperpoint h = calc_relative_matrix(c, currentmap->gamestart(), C0) * C0;
return {0,0,0,int(h[0]*1000),0,0,0,int(h[1]*1000),0,0,0,int(h[2]*1000),0,0,0};
}
}
void thru_portal(coord& x, vect2& v);
void mirror(coord& at, vect2& prev);
@ -1041,6 +1030,9 @@ vector<seuphgeom> seuphgeoms = {
pconf.scale = 0.9;
vid.creature_scale = 1.5;
req_disksize = 0;
arb::convert::convert();
rulegen::prepare_rules();
arb::convert::activate();
}},
{"Spherical Board", []{
@ -1067,6 +1059,9 @@ vector<seuphgeom> seuphgeoms = {
pconf.scale = 0.9;
vid.creature_scale = 0.8;
req_disksize = 0;
arb::convert::convert();
rulegen::prepare_rules();
arb::convert::activate();
}},
{"Dodecagons", []{