mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 05:52:59 +00:00 
			
		
		
		
	new system for honeycombs in action
This commit is contained in:
		
							
								
								
									
										10
									
								
								bigstuff.cpp
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								bigstuff.cpp
									
									
									
									
									
								
							| @@ -153,7 +153,7 @@ EX int default_levs() { | ||||
|   if(S3 >= OINF) | ||||
|     return 1; | ||||
|   #if MAXMDIM >= 4 | ||||
|   if(reg3::in_rule()) return 0; | ||||
|   if(reg3::in_hrmap_rule_or_subrule()) return 0; | ||||
|   #endif | ||||
|   return S3-3; | ||||
|   } | ||||
| @@ -240,7 +240,7 @@ EX heptagon *create_altmap(cell *c, int rad, hstate firststate, int special IS(0 | ||||
|   int gdir = -1; | ||||
|   for(int i=0; i<c->type; i++) { | ||||
|     #if MAXMDIM >= 4 | ||||
|     if(!reg3::in_rule()) { | ||||
|     if(!reg3::in_hrmap_rule_or_subrule()) { | ||||
|     #else | ||||
|     if(true) { | ||||
|     #endif | ||||
| @@ -252,7 +252,7 @@ EX heptagon *create_altmap(cell *c, int rad, hstate firststate, int special IS(0 | ||||
|       } | ||||
|     } | ||||
|   #if MAXMDIM >= 4 | ||||
|   if(reg3::in_rule() && c->master->distance == 0) gdir = 0; | ||||
|   if(reg3::in_hrmap_rule_or_subrule() && c->master->distance == 0) gdir = 0; | ||||
|   #endif | ||||
|   if(gdir < 0) return NULL; | ||||
|    | ||||
| @@ -1670,7 +1670,7 @@ EX void build_horocycles(cell *c, cell *from) { | ||||
|  | ||||
|   if(ls::any_order() && bearsCamelot(c->land) && can_start_horo(c) && !bt::in() &&  | ||||
|     #if MAXMDIM >= 4 | ||||
|     !(hyperbolic && WDIM == 3 && !reg3::in_rule()) &&  | ||||
|     !(hyperbolic && WDIM == 3 && !reg3::in_hrmap_rule_or_subrule()) && | ||||
|     #endif | ||||
|     (quickfind(laCamelot) || peace::on || (hrand(I2000) < (c->land == laCrossroads4 || ls::no_walls() ? 800 : 200) && horo_ok() && | ||||
|     items[itEmerald] >= U5)))  | ||||
| @@ -1860,7 +1860,7 @@ EX void buildCamelot(cell *c) { | ||||
| EX int masterAlt(cell *c) { | ||||
|   if(eubinary) return celldistAlt(c); | ||||
|   #if MAXMDIM >= 4 | ||||
|   if(WDIM == 3 && hyperbolic && !reg3::in_rule()) return reg3::altdist(c->master); | ||||
|   if(WDIM == 3 && hyperbolic && !reg3::in_hrmap_rule_or_subrule()) return reg3::altdist(c->master); | ||||
|   #endif | ||||
|   return c->master->alt->distance; | ||||
|   } | ||||
|   | ||||
							
								
								
									
										8
									
								
								cell.cpp
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								cell.cpp
									
									
									
									
									
								
							| @@ -232,7 +232,7 @@ EX vector<hrmap*> allmaps; | ||||
|  | ||||
| EX hrmap *newAltMap(heptagon *o) {  | ||||
|   #if MAXMDIM >= 4 | ||||
|   if(reg3::in_rule()) | ||||
|   if(reg3::in_hrmap_rule_or_subrule()) | ||||
|     return reg3::new_alt_map(o); | ||||
|   #endif | ||||
|   if(currentmap->strict_tree_rules()) | ||||
| @@ -638,7 +638,7 @@ EX int celldistAlt(cell *c) { | ||||
|     } | ||||
|   #if MAXMDIM >= 4 | ||||
|   if(euc::in()) return euc::dist_alt(c); | ||||
|   if(hyperbolic && WDIM == 3 && !reg3::in_rule()) | ||||
|   if(hyperbolic && WDIM == 3 && !reg3::in_hrmap_rule_or_subrule()) | ||||
|     return reg3::altdist(c->master); | ||||
|   #endif | ||||
|   if(!c->master->alt) return 0; | ||||
| @@ -676,7 +676,7 @@ EX int updir(heptagon *h) { | ||||
|   if(bt::in()) return bt::updir(); | ||||
|   #endif | ||||
|   #if MAXMDIM >= 4 | ||||
|   if(WDIM == 3 && reg3::in_rule()) { | ||||
|   if(WDIM == 3 && reg3::in_hrmap_rule_or_subrule()) { | ||||
|     for(int i=0; i<h->type; i++) if(h->move(i) && h->move(i)->distance < h->distance)  | ||||
|       return i; | ||||
|     return -1; | ||||
| @@ -690,7 +690,7 @@ EX int updir(heptagon *h) { | ||||
| EX int updir_alt(heptagon *h) { | ||||
|   if(euclid || !h->alt) return -1; | ||||
|   #if MAXMDIM >= 4 | ||||
|   if(WDIM == 3 && reg3::in_rule()) { | ||||
|   if(WDIM == 3 && reg3::in_hrmap_rule_or_subrule()) { | ||||
|     for(int i=0; i<S7; i++) if(h->move(i) && h->move(i)->alt && h->move(i)->alt->distance < h->alt->distance)  | ||||
|       return i; | ||||
|     return -1; | ||||
|   | ||||
| @@ -113,7 +113,7 @@ void expansion_analyzer::preliminary_grouping() { | ||||
|       for(int v: rulegen::treestates[i].rules) | ||||
|         if(v >= 0) children[i].push_back(v); | ||||
|     } | ||||
|   else if(reg3::in_rule()) { | ||||
|   else if(reg3::exact_rules()) { | ||||
| #if MAXMDIM >= 4 | ||||
|     rootid = reg3::rule_get_root(0); | ||||
|     auto& chi = reg3::rule_get_children(); | ||||
| @@ -145,7 +145,7 @@ void expansion_analyzer::preliminary_grouping() { | ||||
|   } | ||||
|  | ||||
| void expansion_analyzer::reduce_grouping() { | ||||
|   if(reg3::in_rule()) return; | ||||
|   if(reg3::exact_rules()) return; | ||||
|   if(currentmap->strict_tree_rules()) return; | ||||
|   int old_N = N; | ||||
|   vector<int> grouping; | ||||
| @@ -239,7 +239,7 @@ bool expansion_analyzer::verify(int id) { | ||||
|  | ||||
| int expansion_analyzer::valid(int v, int step) { | ||||
|   if(step < 0) return 0; | ||||
|   int more = reg3::in_rule() ? 1 : 5; | ||||
|   int more = reg3::exact_rules() ? 1 : 5; | ||||
|   #if CAP_GMP == 0 | ||||
|   if(get_descendants(step+v+v+more).approx_int() >= bignum::BASE) return 0; | ||||
|   typedef ld val; | ||||
| @@ -392,7 +392,7 @@ int type_in_quick(expansion_analyzer& ea, cell *c, const cellfunction& f) { | ||||
|   } | ||||
|  | ||||
| EX bool sizes_known() { | ||||
|   if(reg3::in_rule()) return true; | ||||
|   if(reg3::exact_rules()) return true; | ||||
|   if(closed_manifold) return false; | ||||
|   // Castle Anthrax is infinite | ||||
|   if(bt::in()) return false; | ||||
| @@ -583,7 +583,7 @@ void celldrawer::do_viewdist() { | ||||
|       } | ||||
|     case ncType: { | ||||
|       int t = -1; | ||||
|       if(reg3::in_rule()) switch(distance_from) { | ||||
|       if(reg3::exact_rules()) switch(distance_from) { | ||||
|         case dfPlayer:  | ||||
|           t = -1; | ||||
|           break; | ||||
| @@ -740,7 +740,7 @@ void expansion_analyzer::view_distances_dialog() { | ||||
|    | ||||
|   if(really_use_analyzer) { | ||||
|     int t; | ||||
|     if(reg3::in_rule() || currentmap->strict_tree_rules()) { | ||||
|     if(reg3::exact_rules() || currentmap->strict_tree_rules()) { | ||||
|       if(!N) preliminary_grouping();       | ||||
|       t = rootid; | ||||
|       } | ||||
|   | ||||
| @@ -1129,7 +1129,7 @@ EX void showEuclideanMenu() { | ||||
|  | ||||
|   dialog::addSelItem(XLAT("size of the world"), gd.size_str, '3'); | ||||
|    | ||||
|   if(WDIM == 2 || reg3::in_rule()) dialog::add_action([] { | ||||
|   if(WDIM == 2 || reg3::exact_rules()) dialog::add_action([] { | ||||
|     if(!viewdists) { enable_viewdists(); pushScreen(viewdist_configure_dialog); } | ||||
|     else if(viewdists) viewdists = false; | ||||
|     }); | ||||
|   | ||||
| @@ -1 +0,0 @@ | ||||
| x<EFBFBD><EFBFBD><EFBFBD><EFBFBD>m<EFBFBD>0<0C><>:n<><6E>q<EFBFBD>t.<2E><><EFBFBD>:|<7C><>Ѳ<EFBFBD>C<EFBFBD><43>"	:@M<><4D><EFBFBD>(<28><>s<EFBFBD>R<EFBFBD><52>V<EFBFBD>V<EFBFBD><56><EFBFBD>*<2A><>Y2<59>dǣRx<7F>v(x^*|>a饗<61><E9A597><EFBFBD>K=<3D>z<EFBFBD><7A>4<EFBFBD>s$揄<><E68F84>p<EFBFBD>rw<72><77><EFBFBD>\xDŽ<>4/<02>_j<5F>8/<2F><>7p<37><70><EFBFBD>yX<>|<07><>1<EFBFBD><31>>D~<7E><>c<EFBFBD><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>o<12><>6<EFBFBD><1C><0F>r<1F>'yy<0F><><0B>~<7E><><EFBFBD><EFBFBD><EFBFBD>K<EFBFBD><4B>h<EFBFBD>Nci5<69>ޡ<1D>[<5B><>ɵ<EFBFBD>E;Xrːe<06>`<60><><EFBFBD><EFBFBD>*<2A>VQ<56>W<EFBFBD><57><EFBFBD><EFBFBD><1A><>ثI5<49><35><06><><EFBFBD>kH<6B><48><EFBFBD>v#<23><><11>3<EFBFBD>Y;#<23><>D_<44><5F>?xhL<68><4C> | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1,3 +0,0 @@ | ||||
| xڍ<EFBFBD><EFBFBD>R<EFBFBD>@ƛK`<60>D<EFBFBD>[<5B><13>EEAE<41>*{<7B><0B>I6w<1E>G<EFBFBD><47><EFBFBD>{<7B>L<EFBFBD>&T<>UI6<49><36><EFBFBD><EFBFBD><EFBFBD>Mgw<03><><EFBFBD>%<25>C<EFBFBD>3<EFBFBD>t,<2C><>?+<2B><>f<EFBFBD><66><EFBFBD><EFBFBD>^<5E>|W<><57>%ق<><D982><EFBFBD><1C><>f&><3E><>+<01>k<EFBFBD>2?4d<0B><><11><>SKޥ<4B><DEA5>7`,<2C><>]`<60>亮<EFBFBD>WᅧG<47>s\<5C>o<EFBFBD>NK<4E>5<EFBFBD><0F>~<7E><>a<EFBFBD>~<7E><><EFBFBD><EFBFBD>Z#<23>\<5C><>:o<><6F><EFBFBD><EFBFBD>Gr<47>ے<EFBFBD><DB92><EFBFBD><EFBFBD><02><>᳙<EFBFBD><E1B399>ɥ<><C9A5>p<13><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>sYwn5<6E><35><EFBFBD>_r<5F>?(<28>uR/<2F><><EFBFBD><15><>><3E><><1B><>><3E><><EFBFBD>r<EFBFBD><72>a@[o<>=<3D>o<EFBFBD>><3E>y<EFBFBD><79>K<EFBFBD><4B>}<7D><><EFBFBD>Ar9'<27><>˺<EFBFBD>s~<7E><>J<EFBFBD><4A><EFBFBD> <20><>\γ<>O<><7F><EFBFBD>z<EFBFBD><7A><EFBFBD>zp<7A><70><EFBFBD><14><>=<3D><>\<5C><>|<7C><>?<3F>^<07>}<7D><><1A>9a<39><61><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>q9?<3F>Ͻ<><CFBD><EFBFBD>9<EFBFBD><39><EFBFBD><0F>1<EFBFBD>4<EFBFBD>uz<75><7A><EFBFBD>j<EFBFBD><6A><EFBFBD>㾟<EFBFBD>T<EFBFBD><11>j<EFBFBD><6A><EFBFBD><EFBFBD>f><3E><><EFBFBD>]<5D>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>w\<5C><>X~<7E>ُ<EFBFBD><D98F>=ZS<5A><53>~I.<2E><>\<5C>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<02><><10><><EFBFBD> 	1<><31>WO0<>b<EFBFBD><62>C	(<28>NsL<73><0C>43 | ||||
| ~<7E>*<2A>JG<4A><47><EFBFBD>QW3l<33>d<12>ZI<5A>`<60>'<27>^<5E><>E<EFBFBD><45>f}2<>}<7D><><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD>v<1F><>'<27>W<EFBFBD><11><><EFBFBD>*<05>k<EFBFBD><6B><EFBFBD><EFBFBD><EFBFBD><14>D<EFBFBD>"<22>~Y<><59><1F>.<2E>H<EFBFBD><48>Wu<57>QW<51>F<EFBFBD>^"<22><0B>9<EFBFBD>"<22>3U:<3A>JeT<1A><>|buܑ&<26><>$<24>q<EFBFBD>#<23><>5#㵣rx<>8<><13><><0C>0<EFBFBD>9<>(<28>3lbü<62><C3BC>a]`><3E>%<25>k<EFBFBD><1C>̎<EFBFBD>ZC<5A><43><EFBFBD><EFBFBD>><0C>T<EFBFBD><54>I<EFBFBD>T<EFBFBD>z6><3E><><EFBFBD><EFBFBD><EFBFBD>7<>qMG)j<>9<EFBFBD>Sf<53><66><EFBFBD><EFBFBD><1D>we<77><65><EFBFBD>絧<><08>3<#ߙ<>ڌ<EFBFBD><19>u:ޟ"<22><><EFBFBD><EFBFBD><17><><EFBFBD><08>S<<3C> | ||||
| <EFBFBD><1D><>L<EFBFBD>+<2B><><EFBFBD>:&<26><><EFBFBD><EFBFBD>4<EFBFBD><34>q<EFBFBD><71>S<>sp<73>l<EFBFBD><6C>'<27><><EFBFBD>Z<EFBFBD>:YSg<53>z<EFBFBD>u<EFBFBD>uv<75><19><%b<>|:<3A><><EFBFBD><EFBFBD><<0F><>	<09>23W<33> | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/336h-c0.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/336h-c0.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/336h-c7.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/336h-c7.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/336h.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/336h.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/344h-c0.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/344h-c0.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/344h-c7.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/344h-c7.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/344h.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/344h.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/345h.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/345h.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/353h-c0.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/353h-c0.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/353h-c7.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/353h-c7.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/353h.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/353h.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/354h.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/354h.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/355h.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/355h.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/434c-c0.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/434c-c0.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/434c-c7.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/434c-c7.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										2
									
								
								honeycombs/434c.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								honeycombs/434c.dat
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| xڕ<EFBFBD>=t | ||||
| A<18><><EFBFBD>!"!<21>$"n<> <11><>Ј<EFBFBD><D088>J<EFBFBD>Rٙ<52><D999>T*<2A>J<EFBFBD>R<EFBFBD>R<EFBFBD>hT*<2A>J<EFBFBD>R<EFBFBD>T*<2A>J<EFBFBD><4A>x<EFBFBD><78><EFBFBD><EFBFBD>o<EFBFBD><6F>I<EFBFBD><49>g<EFBFBD><67><EFBFBD>}<7D><><EFBFBD>{<7B><><EFBFBD> <20> "<22><>!I:L<><4C>ޮ<<3C><><EFBFBD>eHN<48><4E><EFBFBD>vz켫>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>7<>v<EFBFBD><76>7<EFBFBD><37>H<EFBFBD><48>s<><73><EFBFBD>e<EFBFBD><65><EFBFBD><EFBFBD>hT'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)=<1E><><1C>zN<0E>~<7E><><EFBFBD>g<EFBFBD>q/<2F>S<EFBFBD>uZ<75><17>>Ѣ<><D1A2>><3E>_<><5F>{-*}F<><46><EFBFBD>K-<2D>۲<EFBFBD><DBB2>sE9<17><><EFBFBD><EFBFBD><EFBFBD>><3E>|<7C><>G<EFBFBD><47><EFBFBD>5<EFBFBD>*W<><57><EFBFBD><EFBFBD><EFBFBD>r<EFBFBD><72>L<><4C>F<EFBFBD>d]<5D>e<EFBFBD><65><EFBFBD>\G<><47>c2%<25>[#"Υyn<79><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>><3E>5<EFBFBD><35><EFBFBD>2<EFBFBD>ʛ | ||||
							
								
								
									
										
											BIN
										
									
								
								honeycombs/435h-bs1.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/435h-bs1.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/435h-bs2.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/435h-bs2.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/435h-d2.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/435h-d2.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/435h-s2.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/435h-s2.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/435h.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/435h.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/436h-s2.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/436h-s2.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/436h.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/436h.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/534h-c0.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/534h-c0.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										5
									
								
								honeycombs/534h-c7.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								honeycombs/534h-c7.dat
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| x<EFBFBD><EFBFBD><EFBFBD>\<5C>u<01><>߳<EFBFBD>ۘ<>De<44><65><15>TT<54><54>čm<C48D><6D>*&M2*<2A><)&64J*J,R,*TTJ,*4T4T**ZT<5A>L<EFBFBD><4C>H<EFBFBD><48><EFBFBD><EFBFBD><EFBFBD>ШP<D0A8><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><06><>^<5E><>כ<EFBFBD><D79B><EFBFBD>=<3D>=<3D>w<><77>v+<2B>3f<33>1f<31>b3<62>8<EFBFBD><38><EFBFBD>L_<4C>y<EFBFBD><79><19><><EFBFBD>B	-<2D><>u<><75><16>r<EFBFBD><72><EFBFBD><EFBFBD>t<EFBFBD>s<EFBFBD><73>	+#<23><13><><EFBFBD>r<EFBFBD><72><EFBFBD>$<24>d<EFBFBD>կ<><D5AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g8<67><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><1D><>R<EFBFBD>U<EFBFBD>WOPUS<><53><0F>ToP?<3F><>T?<3F>~L<><4C><EFBFBD>i<EFBFBD>V<EFBFBD>RQԍjP<6A>@ݢ^<5E>nR7<52><37><EFBFBD><EFBFBD><EFBFBD>ֈ<EFBFBD><1D><><EFBFBD><EFBFBD><EFBFBD>oSWD<57><1E>Tգԣ<D5A3><D4A3><EFBFBD>T<EFBFBD><0C>-<2D><15>[շ<><D5B7>P<EFBFBD>#nW<6E>z<EFBFBD>z<EFBFBD><7A>6<EFBFBD><36>>q<><71><EFBFBD>85YMQOROVOQ<4F><51><EFBFBD>ǟ|^T<><1F>x<EFBFBD>+<2B><1B>*<2A>&<26>Z<EFBFBD><5A>z<EFBFBD>z<EFBFBD><7A><19><><EFBFBD><EFBFBD><EFBFBD>:<3A>6<EFBFBD>v<EFBFBD>#j<>9<EFBFBD><39>z<EFBFBD><7A><EFBFBD><1E>m<>N<13>l{<7B>9<EFBFBD><39><08>P=L=\MPW<50>^c<>i<EFBFBD>x<EFBFBD><78>><3E><>m1C<><43>,<2C>}<7D>z<EFBFBD><7A>n<EFBFBD>Z<EFBFBD><5A>,U<><55><EFBFBD><EFBFBD>r<EFBFBD>@<40> g<>z<EFBFBD>o<>]<5D><>5<EFBFBD>]<5D>W<EFBFBD><57><EFBFBD>D<EFBFBD><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><1B><><EFBFBD>r<EFBFBD>@5N=X}Iu<49>/<2F>_R<5F><52>ɿ<EFBFBD>w<EFBFBD> | ||||
| <EFBFBD><EFBFBD><EFBFBD>/<2F><>D<1C>Q<EFBFBD>7<EFBFBD>x_Q[Շ<>g<EFBFBD><67><EFBFBD><EFBFBD>կ<EFBFBD>ԅ<>b<EFBFBD><62><EFBFBD>Cj<6A>y<EFBFBD>:<3A><>~q<><71><EFBFBD>u<><1A><>Z<EFBFBD><5A>:<3A><>^V<><56><EFBFBD><EFBFBD>U_PR<><52><EFBFBD><EFBFBD><EFBFBD>QW}<7D>7<EFBFBD>o<EFBFBD><1D><>#<23><>]u]<5D>x]<5D><1E><1E>&<26>ǫ'<27>'<27><><EFBFBD>:~<7E><><EFBFBD>w<EFBFBD>?Q<>PL<7F>T<EFBFBD>R<EFBFBD><52>N<EFBFBD><4E><EFBFBD><EFBFBD>N<EFBFBD>@OTS<54><53><EFBFBD>ٴOm3<6D><33>{<7B>s<EFBFBD>ζ<EFBFBD>\b<><62><EFBFBD><EFBFBD><EFBFBD>nα<6E><CEB1>)P<0B>"<22>_<EFBFBD><5F>m<EFBFBD>M<EFBFBD><4D><EFBFBD>u<EFBFBD><75><EFBFBD>?<3F>>jru<72><75>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD>p<EFBFBD>gt<>T7;<3B>&<26><>{ | ||||
| <EFBFBD><EFBFBD><EFBFBD>}<7D><>[<5B><1D>o<EFBFBD><6F>ۡ<EFBFBD>vh{<7B>9<EFBFBD>nr~<10>yt<79><74>I۷h<DBB7><16>k<EFBFBD><6B><EFBFBD><0F>j<EFBFBD><6A><EFBFBD><EFBFBD>8<EFBFBD>7.<2E>@<40>r̥<>\5<><35>q<EFBFBD>7<EFBFBD>v<EFBFBD>k@]<5D><><EFBFBD>4^<5E><>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD>s<EFBFBD><73>ھV<DABE><56>j~<7E><>+<2B>&z>͡<><CDA1>o<EFBFBD><6F><EFBFBD><EFBFBD>|<7C>t;<3B><><EFBFBD><e>n<>Y{:<3A>O<EFBFBD><4F><EFBFBD>S<EFBFBD>V<EFBFBD><56>O<><4F><EFBFBD>IS<49><07><><EFBFBD><EFBFBD><EFBFBD>j<EFBFBD><1B><1D>?5w<35><18>Sb&L<><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŕ<EFBFBD><C594><EFBFBD>^g;<3B><>ټ<EFBFBD><D9BC><EFBFBD>P<EFBFBD>k<1B><>k<EFBFBD><6B><EFBFBD><EFBFBD><17><><EFBFBD><18><><EFBFBD><EFBFBD>,q.r<>a<EFBFBD>o<EFBFBD><6F><EFBFBD>ήˍ)<29>\<5C><1B><><EFBFBD>E\ | ||||
| <EFBFBD><EFBFBD>.f<>gCĖ<43><C496>ٷ<14>2?۬;<3B>=g<>w<EFBFBD><~<7E><19><><EFBFBD>zA<11><>"<22><>-<2D>m<EFBFBD>i<EFBFBD>[&<><7F>i<EFBFBD><69><EFBFBD><EFBFBD><EFBFBD>-<2D><>5<EFBFBD>^<5E><><EFBFBD><EFBFBD><15><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y?C<>u<0B><>B<EFBFBD>zc{OC<4F>d<EFBFBD><64><18>o<EFBFBD>><1E>Qyϐ"<22>^^33u<33><75><EFBFBD>ȍ<EFBFBD>z<EFBFBD><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<3F><>}<7D><>7<EFBFBD><05><EFBFBD><7F><EFBFBD><EFBFBD>ޞ<EFBFBD><DE9E>_<EFBFBD><5F>c<EFBFBD><63><EFBFBD><EFBFBD><EFBFBD>w<EFBFBD>(<28><><EFBFBD>Z<14><>>A<>kz<><7A><EFBFBD><EFBFBD>53n<33>֧<EFBFBD>gw#7<>)e<><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۵<EFBFBD><DBB5><EFBFBD><EFBFBD>u<EFBFBD><75>zm<7A>{5<><35>b<EFBFBD><62><EFBFBD>̏<EFBFBD><CC8F><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD><67>Q<>n<EFBFBD>{o.<2E>&<26><>tx<74><78><EFBFBD><7F><EFBFBD>%<25><><EFBFBD>K<EFBFBD><4B><EFBFBD>>}5<10>8<EFBFBD>#<01>HB2R<32>G*<2A>@:2D&<26><><EFBFBD><1C>"<0F>pQ<70><12><><0C><>@%<25>P | ||||
| <EFBFBD><EFBFBD>hjQ<EFBFBD>z4<EFBFBD>MhFZцvt<76>]<5D>Fzч~`C<18>F1<46>qL<71><4C> | ||||
							
								
								
									
										
											BIN
										
									
								
								honeycombs/534h.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/534h.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/535h.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/535h.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								honeycombs/536h.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								honeycombs/536h.dat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -192,7 +192,7 @@ EX bool is_zebra_trapdoor(cell *c) { | ||||
|   else if(arb::in() && arb::current.have_line) | ||||
|     return arb::linespattern(c); | ||||
|   #if MAXMDIM >= 4 | ||||
|   else if(reg3::in_rule()) switch(geometry) { | ||||
|   else if(PURE && reg3::exact_rules()) switch(geometry) { | ||||
|     case gSpace534: { | ||||
|       if(c->master->fieldval == 0) return true; | ||||
|       forCellCM(c1, c) if(c1->master->fieldval == 0) return true; | ||||
|   | ||||
							
								
								
									
										103
									
								
								reg3.cpp
									
									
									
									
									
								
							
							
						
						
									
										103
									
								
								reg3.cpp
									
									
									
									
									
								
							| @@ -1304,18 +1304,11 @@ EX namespace reg3 { | ||||
|     } | ||||
|  | ||||
|   EX bool minimize_quotient_maps = false; | ||||
|   EX bool subrule = false; | ||||
|  | ||||
|   EX bool strafe_test = false; | ||||
|  | ||||
|   hrmap_quotient3 *gen_quotient_map(bool minimized, fieldpattern::fpattern &fp) { | ||||
|     #if CAP_FIELD | ||||
|     #if CAP_CRYSTAL | ||||
|     if(geometry == gSpace344) { | ||||
|       return new hrmap_from_crystal(minimized ? 1 : 2); | ||||
|       } | ||||
|     else | ||||
|     #endif | ||||
|     if(geometry == gSpace535 && minimized) { | ||||
|       return new seifert_weber::hrmap_singlecell(108*degree); | ||||
|       } | ||||
| @@ -1454,6 +1447,7 @@ EX namespace reg3 { | ||||
|       } | ||||
|  | ||||
|     hrmap_h3() { | ||||
|       println(hlog, "generating hrmap_h3"); | ||||
|       origin = init_heptagon(S7); | ||||
|       heptagon& h = *origin; | ||||
|       h.s = hsOrigin; | ||||
| @@ -1856,22 +1850,6 @@ EX namespace reg3 { | ||||
|  | ||||
|     ruleset() : fp(0) {} | ||||
|  | ||||
|     void load_ruleset(string fname) { | ||||
|  | ||||
|       shstream ins(decompress_string(read_file_as_string(fname))); | ||||
|       dynamicval<bool> q(fieldpattern::use_quotient_fp, true);       | ||||
|       hread_fpattern(ins, fp); | ||||
|  | ||||
|       hread(ins, root); | ||||
|       hread(ins, children); | ||||
|       hread(ins, other); | ||||
|       // hread(ins, childpos); | ||||
|  | ||||
|       int t = S7; | ||||
|       int qty = isize(children) / t; | ||||
|       for(int i=0; i<=qty; i++) childpos.push_back(i * t); | ||||
|       } | ||||
|  | ||||
|     void load_ruleset_new(string fname) { | ||||
|  | ||||
|       shstream ins(decompress_string(read_file_as_string(fname))); | ||||
| @@ -1887,6 +1865,8 @@ EX namespace reg3 { | ||||
|       hread(ins, children); | ||||
|       hread(ins, other); | ||||
|       hread(ins, childpos); | ||||
|  | ||||
|       println(hlog, "roots = ", isize(root), " states = ", isize(childpos)-1, " hashv = ", fp.hashv); | ||||
|       } | ||||
|  | ||||
|     /** \brief address = (fieldvalue, state) */ | ||||
| @@ -2045,8 +2025,10 @@ EX namespace reg3 { | ||||
|  | ||||
|     hrmap_h3_rule() { | ||||
|  | ||||
|       load_ruleset(get_rule_filename()); | ||||
|       quotient_map = gen_quotient_map(is_minimized(), fp); | ||||
|       println(hlog, "generating hrmap_h3_rule"); | ||||
|  | ||||
|       load_ruleset_new(get_rule_filename(false)); | ||||
|       quotient_map = gen_quotient_map(minimize_quotient_maps, fp); | ||||
|       find_mappings(); | ||||
|        | ||||
|       origin = init_heptagon(S7); | ||||
| @@ -2263,7 +2245,7 @@ EX namespace reg3 { | ||||
|  | ||||
|       println(hlog, "loading a subrule ruleset"); | ||||
|  | ||||
|       load_ruleset_new(get_rule_filename()); | ||||
|       load_ruleset_new(get_rule_filename(true)); | ||||
|       quotient_map = gen_quotient_map(minimize_quotient_maps, fp); | ||||
|       int t = quotient_map->acells[0]->type; | ||||
|       find_mappings(); | ||||
| @@ -2422,39 +2404,43 @@ EX hrmap *new_alt_map(heptagon *o) { | ||||
|   return new hrmap_h3_rule_alt(o); | ||||
|   } | ||||
|  | ||||
| EX bool reg3_rule_available = true; | ||||
| EX string other_rule = ""; | ||||
| /** 1 -- consider pure rules, 2 -- consider variation rules, 3 -- consider both */ | ||||
| EX int consider_rules = 3; | ||||
|  | ||||
| EX bool is_minimized() { | ||||
|   return geometry != gSpace535 && geometry != gSpace344; | ||||
|   } | ||||
| EX string replace_rule_file; | ||||
|  | ||||
| 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 string get_rule_filename(bool with_variations) { | ||||
|   if(replace_rule_file != "") return replace_rule_file; | ||||
|   string s; | ||||
|   s += "honeycombs/"; | ||||
|   s += ginf[geometry].tiling_name[1]; | ||||
|   s += ginf[geometry].tiling_name[3]; | ||||
|   s += ginf[geometry].tiling_name[5]; | ||||
|   if(hyperbolic) s += "h"; | ||||
|   else s += "c"; | ||||
|   if(with_variations) { | ||||
|     if(variation == eVariation::coxeter) s += "-c" + its(coxeter_param); | ||||
|     if(variation == eVariation::subcubes) s += "-s" + its(subcube_count); | ||||
|     if(variation == eVariation::dual_subcubes) s += "-d" + its(subcube_count); | ||||
|     if(variation == eVariation::bch) s += "-bs" + its(subcube_count); | ||||
|     } | ||||
|   s += ".dat"; | ||||
|   return find_file(s); | ||||
|   } | ||||
|  | ||||
| EX bool in_rule() { | ||||
|   return reg3_rule_available && get_rule_filename() != ""; | ||||
| EX bool variation_rule_available() { | ||||
|   return (consider_rules & 2) && file_exists(get_rule_filename(true)); | ||||
|   } | ||||
|  | ||||
| EX bool pure_rule_available() { | ||||
|   return (consider_rules & 1) && file_exists(get_rule_filename(false)); | ||||
|   } | ||||
|  | ||||
| ruleset& get_ruleset() { | ||||
|   if(subrule) return *((hrmap_h3_subrule*)currentmap); | ||||
|   if(in_rule()) return *((hrmap_h3_rule*)currentmap); | ||||
|   auto h1 = dynamic_cast<hrmap_h3_subrule*> (currentmap); | ||||
|   if(h1) return *h1; | ||||
|   auto h2 = dynamic_cast<hrmap_h3_rule*> (currentmap); | ||||
|   if(h2) return *h2; | ||||
|   throw hr_exception("get_ruleset called but not in rule"); | ||||
|   } | ||||
|  | ||||
| @@ -2475,8 +2461,8 @@ EX hrmap* new_map() { | ||||
|   if(geometry == gSeifertWeber) return new seifert_weber::hrmap_singlecell(108*degree); | ||||
|   if(geometry == gHomologySphere) return new seifert_weber::hrmap_singlecell(36*degree); | ||||
|   if(quotient && !sphere) return new hrmap_field3(&currfp); | ||||
|   if(subrule) return new hrmap_h3_subrule; | ||||
|   if(in_rule()) return new hrmap_h3_rule; | ||||
|   if(variation_rule_available()) return new hrmap_h3_subrule; | ||||
|   if(pure_rule_available()) return new hrmap_h3_rule; | ||||
|   if(sphere) return new hrmap_sphere3; | ||||
|   return new hrmap_h3; | ||||
|   } | ||||
| @@ -2489,6 +2475,15 @@ EX bool in_hrmap_h3() { | ||||
|   return dynamic_cast<hrmap_h3*> (currentmap); | ||||
|   } | ||||
|  | ||||
| EX bool in_hrmap_rule_or_subrule() { | ||||
|   return dynamic_cast<hrmap_h3_rule*> (currentmap) || dynamic_cast<hrmap_h3_subrule*> (currentmap); | ||||
|   } | ||||
|  | ||||
| EX bool exact_rules() { | ||||
|   if(PURE) return in_hrmap_rule_or_subrule(); | ||||
|   return dynamic_cast<hrmap_h3_subrule*> (currentmap); | ||||
|   } | ||||
|  | ||||
| EX int quotient_count() { | ||||
|   return isize(hypmap()->quotient_map->allh); | ||||
|   } | ||||
| @@ -2553,7 +2548,7 @@ EX int celldistance(cell *c1, cell *c2) { | ||||
|   int b = bucketer(h); | ||||
|   if(cgi.close_distances.count(b)) return cgi.close_distances[b]; | ||||
|    | ||||
|   if(in_rule()) | ||||
|   if(in_hrmap_rule_or_subrule()) | ||||
|     return clueless_celldistance(c1, c2); | ||||
|  | ||||
|   dynamicval<eGeometry> g(geometry, gBinary3);   | ||||
|   | ||||
| @@ -2098,11 +2098,9 @@ EX void generate_rules() { | ||||
|   start_time = SDL_GetTicks(); | ||||
|   delete_tmap(); | ||||
|  | ||||
|   if(WDIM == 3) { | ||||
|   if(WDIM == 3 && reg3::in_hrmap_rule_or_subrule()) { | ||||
|     stop_game(); | ||||
|     reg3::reg3_rule_available = false; | ||||
|     fieldpattern::use_rule_fp = true; | ||||
|     fieldpattern::use_quotient_fp = true; | ||||
|     reg3::consider_rules = 0; | ||||
|     flags |= w_numerical; | ||||
|     start_game(); | ||||
|     } | ||||
|   | ||||
							
								
								
									
										11
									
								
								rulegen3.cpp
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								rulegen3.cpp
									
									
									
									
									
								
							| @@ -1716,19 +1716,20 @@ int readRuleArgs3() { | ||||
|     // -urq 7 to prepare honeycomb generation | ||||
|     stop_game(); | ||||
|     shift(); int i = argi(); | ||||
|     reg3::reg3_rule_available = (i & 8) ? 0 : 1; | ||||
|     reg3::consider_rules = i >> 3; | ||||
|     fieldpattern::use_rule_fp = (i & 1) ? 1 : 0; | ||||
|     fieldpattern::use_quotient_fp = (i & 2) ? 1 : 0; | ||||
|     reg3::minimize_quotient_maps = (i & 4) ? 1 : 0; | ||||
|     } | ||||
|  | ||||
|   else if(argis("-subrule")) {     | ||||
|   else if(argis("-load-honeycomb")) { | ||||
|     stop_game(); | ||||
|     shift(); reg3::other_rule = args(); | ||||
|     shstream ins(decompress_string(read_file_as_string(arg::args()))); | ||||
|     string s = args(); | ||||
|     shift(); reg3::replace_rule_file = s; | ||||
|     shstream ins(decompress_string(read_file_as_string(s))); | ||||
|     ins.read(ins.vernum); | ||||
|     mapstream::load_geometry(ins); | ||||
|     reg3::subrule = true; | ||||
|     reg3::consider_rules = 2; | ||||
|     } | ||||
|  | ||||
|   else if(argis("-less-states")) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue