mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 05:52:59 +00:00 
			
		
		
		
	crystal:: removed add_bitruncation -- using ginf[gCrystal].vertex
This commit is contained in:
		
							
								
								
									
										22
									
								
								crystal.cpp
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								crystal.cpp
									
									
									
									
									
								
							| @@ -6,7 +6,10 @@ namespace hr { | ||||
|  | ||||
| namespace crystal { | ||||
|  | ||||
| bool add_bitruncation = false; | ||||
| bool pure() { | ||||
|   return PURE && ginf[gCrystal].vertex == 4; | ||||
|   } | ||||
|  | ||||
| bool view_coordinates = false; | ||||
|  | ||||
| const int MAXDIM = 7; | ||||
| @@ -391,7 +394,7 @@ void create_step(heptagon *h, int d) { | ||||
|  | ||||
|   auto lw = m->makewalker(co, d); | ||||
|  | ||||
|   if(!add_bitruncation) { | ||||
|   if(ginf[gCrystal].vertex == 4) { | ||||
|     auto c1 = add(co, lw, FULLSTEP); | ||||
|     auto lw1 = lw+wstep; | ||||
|      | ||||
| @@ -453,14 +456,7 @@ bool crystal_cell(cell *c, transmatrix V) { | ||||
|        | ||||
|       int coordcolors[MAXDIM] = {0x4040D0, 0x40D040, 0xD04040, 0xFFD500, 0xF000F0, 0x00F0F0, 0xF0F0F0 }; | ||||
|      | ||||
|       queuestr(T, 0.3, its(co[cx>>1] / (add_bitruncation ? HALFSTEP : FULLSTEP)), coordcolors[cx>>1], 1); | ||||
|       } | ||||
|  | ||||
|     if(PURE) { | ||||
|       cellwalker cw(c, i); | ||||
|       cellwalker cw2 = cw; | ||||
|       for(int i=0; i<(add_bitruncation?3:4); i++) cw2 = cw2 + wstep + 1; | ||||
|       if(cw2 != cw) { printf("crystal valence error\n"); cw.at->item = itGold; } | ||||
|       queuestr(T, 0.3, its(co[cx>>1] / (ginf[gCrystal].vertex == 3 ? HALFSTEP : FULLSTEP)), coordcolors[cx>>1], 1); | ||||
|       }                                  | ||||
|     } | ||||
|   return false; | ||||
| @@ -469,7 +465,7 @@ bool crystal_cell(cell *c, transmatrix V) { | ||||
| int precise_distance(cell *c1, cell *c2) { | ||||
|   if(c1 == c2) return 0; | ||||
|   auto m = crystal_map(); | ||||
|   if(PURE && !add_bitruncation) { | ||||
|   if(pure()) { | ||||
|     coord co1 = m->hcoords[c1->master]; | ||||
|     coord co2 = m->hcoords[c2->master]; | ||||
|     int result = 0; | ||||
| @@ -549,7 +545,7 @@ int dist_relative(cell *c) { | ||||
|       cc = cc->cmove(hrand(cc->type)); | ||||
|     } | ||||
|  | ||||
|   if(PURE && !add_bitruncation)  | ||||
|   if(pure())  | ||||
|     return precise_distance(c, cc) - r; | ||||
|  | ||||
|   ld sdmul = (r+5) / space_distance(cc, start); | ||||
| @@ -658,7 +654,7 @@ void hrmap_crystal::prepare_east() { | ||||
| int dist_alt(cell *c) { | ||||
|   auto m = crystal_map(); | ||||
|   if(specialland == laCamelot && m->camelot_center) { | ||||
|     if(PURE && !add_bitruncation)  | ||||
|     if(pure())  | ||||
|       return precise_distance(c, m->camelot_center); | ||||
|     if(c == m->camelot_center) return 0; | ||||
|     return 1 + int(4 * space_distance(m->camelot_center, c)); | ||||
|   | ||||
| @@ -1158,9 +1158,9 @@ void set_variation(eVariation target) { | ||||
|   if(variation != target) { | ||||
|     stop_game(); | ||||
|     if(euclid6 || binarytiling) geometry = gNormal; | ||||
|     if(target == eVariation::bitruncated && geometry == gCrystal && ginf[gCrystal].sides == 8 && !crystal::add_bitruncation) { | ||||
|       crystal::add_bitruncation = true; | ||||
|       ginf[gCrystal].vertex = 3; | ||||
|     auto& cd = ginf[gCrystal]; | ||||
|     if(target == eVariation::bitruncated && geometry == gCrystal && cd.sides == 8 && cd.vertex == 4) { | ||||
|       cd.vertex = 3; | ||||
|       target = eVariation::pure; | ||||
|       } | ||||
|     variation = target; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue