1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-11-27 06:27:17 +00:00

reg3:: included tree rules for most hyperbolic honeycombs

This commit is contained in:
Zeno Rogue 2021-05-20 23:14:00 +02:00
parent bb016585ab
commit 256b12b140
6 changed files with 29 additions and 7 deletions

1
honeycomb-rules-344.dat Normal file
View File

@ -0,0 +1 @@
М■Иmц0 ┘╘:n▌╕q t .А╚М:|▄жя╡┘C┼┼" :@M─фШ(И▐s░R║╧V┴V│сл*яэY2┤dгёRxоv(x^*|>aИ╔≈Ч╞ЩK=┘zВЙ4Цs$Ф▐└└оp┌rw╟├ш\x гВ4/С_j 8/Ш┘7p┬°ШyXя|ВШ1©▒>D~УСcЮлГвЯ╝≥оoФЭ6АЖРrч'yyЁД Ъ~иъчоЫK┴зhтNci5╨ч║┼[▓╚и╣╫E;Xrк░eв▄м`П╬│щ*ЗVQ╠W▒╙Ц╝К╗ь╚I5ЯЭ⌡╗ьkH╣ьУv#Уп╣3БY;#·╣D_Ь█?xhLХН

BIN
honeycomb-rules-354.dat Normal file

Binary file not shown.

BIN
honeycomb-rules-355.dat Normal file

Binary file not shown.

BIN
honeycomb-rules-436.dat Normal file

Binary file not shown.

BIN
honeycomb-rules-536.dat Normal file

Binary file not shown.

View File

@ -1032,11 +1032,8 @@ EX namespace reg3 {
} }
hrmap_reg3_rule() : fp(0) { hrmap_reg3_rule() : fp(0) {
if(S7 == 6) load_ruleset("honeycomb-rules-435.dat"); load_ruleset(get_rule_filename());
else if(S7 == 20) load_ruleset("honeycomb-rules-353.dat");
else if(ginf[geometry].vertex == 5) load_ruleset("honeycomb-rules-535.dat");
else load_ruleset("honeycomb-rules-534.dat");
origin = tailored_alloc<heptagon> (S7); origin = tailored_alloc<heptagon> (S7);
heptagon& h = *origin; heptagon& h = *origin;
@ -1065,11 +1062,15 @@ EX namespace reg3 {
if(geometry == gSpace535) if(geometry == gSpace535)
quotient_map = new seifert_weber::hrmap_seifert_cover(); quotient_map = new seifert_weber::hrmap_seifert_cover();
else if(geometry == gSpace344)
quotient_map = new hrmap_from_crystal;
else else
quotient_map = new hrmap_field3(&fp); quotient_map = new hrmap_field3(&fp);
if(geometry == gSpace535) if(geometry == gSpace535)
emerald_map = new seifert_weber::hrmap_seifert_cover(); emerald_map = new seifert_weber::hrmap_seifert_cover();
else if(geometry == gSpace344)
emerald_map = new hrmap_from_crystal;
else else
emerald_map = new hrmap_field3(&currfp); emerald_map = new hrmap_field3(&currfp);
h.emeraldval = 0; h.emeraldval = 0;
@ -1264,9 +1265,29 @@ EX void link_structures(heptagon *h, heptagon *alt, hstate firststate) {
} }
EX bool reg3_rule_available = true; EX bool reg3_rule_available = true;
EX string other_rule = "";
EX string get_rule_filename() {
if(other_rule != "") return other_rule;
switch(geometry) {
case gSpace336: return "honeycomb-rules-336.dat";
case gSpace344: return "honeycomb-rules-344.dat";
// case gSpace345: return "honeycomb-rules-345.dat";
case gSpace353: return "honeycomb-rules-353.dat";
case gSpace354: return "honeycomb-rules-354.dat";
// case gSpace355: return "honeycomb-rules-355.dat";
case gSpace435: return "honeycomb-rules-435.dat";
case gSpace436: return "honeycomb-rules-436.dat";
case gSpace534: return "honeycomb-rules-534.dat";
case gSpace535: return "honeycomb-rules-535.dat";
case gSpace536: return "honeycomb-rules-536.dat";
default: return "";
}
}
EX bool in_rule() { EX bool in_rule() {
return reg3_rule_available && among(geometry, gSpace534, gSpace435, gSpace535, gSpace353); return reg3_rule_available && get_rule_filename() != "";
} }
EX int rule_get_root(int i) { EX int rule_get_root(int i) {