mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 14:02:59 +00:00 
			
		
		
		
	reg3:: nice Zebra and Graveyard patterns
This commit is contained in:
		
							
								
								
									
										23
									
								
								landgen.cpp
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								landgen.cpp
									
									
									
									
									
								
							| @@ -667,6 +667,29 @@ EX void giantLandSwitch(cell *c, int d, cell *from) { | |||||||
|         #endif |         #endif | ||||||
|         else if(arb::in() && arb::current.have_line) |         else if(arb::in() && arb::current.have_line) | ||||||
|           c->wall = arb::linespattern(c) ? waTrapdoor : waNone; |           c->wall = arb::linespattern(c) ? waTrapdoor : waNone; | ||||||
|  |         else if(reg3::in_rule()) switch(geometry) { | ||||||
|  |           case gSpace534: { | ||||||
|  |             if(c->master->fieldval == 0) c->wall = waTrapdoor; | ||||||
|  |             forCellCM(c1, c) if(c1->master->fieldval == 0) c->wall = waTrapdoor; | ||||||
|  |             break; | ||||||
|  |             } | ||||||
|  |           case gSpace435: { | ||||||
|  |             for(int i=0; i<S7; i++) { | ||||||
|  |               cellwalker cw(c, i); | ||||||
|  |               for(int a=0; a<3; a++) { | ||||||
|  |                 if(cw.at->master->fieldval == 0) c->wall = waTrapdoor; | ||||||
|  |                 cw += wstep; | ||||||
|  |                 cw += rev; | ||||||
|  |                 } | ||||||
|  |               } | ||||||
|  |             break; | ||||||
|  |             } | ||||||
|  |           case gSpace535: { | ||||||
|  |             if((c->master->fieldval % 5) % 2 == 1) c->wall = waTrapdoor; | ||||||
|  |             break; | ||||||
|  |             } | ||||||
|  |           default: ; | ||||||
|  |           } | ||||||
|         else if(euclid && !arcm::in()) { |         else if(euclid && !arcm::in()) { | ||||||
|           auto co = euc2_coordinates(c); |           auto co = euc2_coordinates(c); | ||||||
|           int y = co.second; |           int y = co.second; | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								reg3.cpp
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								reg3.cpp
									
									
									
									
									
								
							| @@ -1226,8 +1226,6 @@ EX bool pseudohept(cell *c) { | |||||||
|       return abs(h[3]) > .99 || abs(h[0]) > .99 || abs(h[1]) > .99 || abs(h[2]) > .99; |       return abs(h[3]) > .99 || abs(h[0]) > .99 || abs(h[1]) > .99 || abs(h[2]) > .99; | ||||||
|     } |     } | ||||||
|   // chessboard pattern in 534 |   // chessboard pattern in 534 | ||||||
|   if(geometry == gSpace534)  |  | ||||||
|     return c->master->distance & 1; |  | ||||||
|   if(geometry == gField534)  |   if(geometry == gField534)  | ||||||
|     return hr::celldistance(c, currentmap->gamestart()) & 1; |     return hr::celldistance(c, currentmap->gamestart()) & 1; | ||||||
|   if(geometry == gCrystal344 || geometry == gCrystal534 || geometry == gSeifertCover) |   if(geometry == gCrystal344 || geometry == gCrystal534 || geometry == gSeifertCover) | ||||||
| @@ -1235,6 +1233,8 @@ EX bool pseudohept(cell *c) { | |||||||
|   if(quotient) return false; /* added */ |   if(quotient) return false; /* added */ | ||||||
|   auto mr = dynamic_cast<hrmap_reg3_rule*> (currentmap); |   auto mr = dynamic_cast<hrmap_reg3_rule*> (currentmap); | ||||||
|   if(mr) { |   if(mr) { | ||||||
|  |     if(geometry == gSpace535)  | ||||||
|  |       return c->master->fieldval % 31 == 0; | ||||||
|     return c->master->fieldval == 0; |     return c->master->fieldval == 0; | ||||||
|     } |     } | ||||||
|   if(m && hyperbolic) { |   if(m && hyperbolic) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue