mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 05:52:59 +00:00 
			
		
		
		
	Zebra, Palace, Power, and Vineyard are now OK in gp
This commit is contained in:
		
							
								
								
									
										2
									
								
								game.cpp
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								game.cpp
									
									
									
									
									
								
							| @@ -3166,7 +3166,7 @@ void toggleGates(cell *ct, eWall type) { | |||||||
|   if(type == waClosePlate && nonbitrunc && !gp::on) |   if(type == waClosePlate && nonbitrunc && !gp::on) | ||||||
|     toggleGates(ct, type, 2); |     toggleGates(ct, type, 2); | ||||||
|   else |   else | ||||||
|     toggleGates(ct, type, 3); |     toggleGates(ct, type, gp::on ? gp::dist_3() : 3); | ||||||
|   if(numgates && type == waClosePlate) |   if(numgates && type == waClosePlate) | ||||||
|     playSound(ct, "closegate"); |     playSound(ct, "closegate"); | ||||||
|   if(numgates && type == waOpenPlate) |   if(numgates && type == waOpenPlate) | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								landgen.cpp
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								landgen.cpp
									
									
									
									
									
								
							| @@ -164,7 +164,7 @@ void giantLandSwitch(cell *c, int d, cell *from) { | |||||||
|      |      | ||||||
|     case laPalace: // ------------------------------------------------------------- |     case laPalace: // ------------------------------------------------------------- | ||||||
|      |      | ||||||
|       if(weirdhyperbolic || torus || S7 < 5) { |       if(hyperbolic_not37 || torus || S7 < 5) { | ||||||
|         if(d == 9) { |         if(d == 9) { | ||||||
|           int i = hrand(100); |           int i = hrand(100); | ||||||
|           if(i < 10)  |           if(i < 10)  | ||||||
| @@ -213,6 +213,14 @@ void giantLandSwitch(cell *c, int d, cell *from) { | |||||||
|         if(nonbitrunc) { |         if(nonbitrunc) { | ||||||
|           int i = fiftyval049(c); |           int i = fiftyval049(c); | ||||||
|           if(i >= 8 && i <= 14 && !polarb50(c)) pgate = true; |           if(i >= 8 && i <= 14 && !polarb50(c)) pgate = true; | ||||||
|  |           if(gp::on) { | ||||||
|  |             bool good = false; | ||||||
|  |             forCellEx(c2, c) { | ||||||
|  |               int i2 = fiftyval049(c2); | ||||||
|  |               if((i2 < 8) && polarb50(c2)) good = true; | ||||||
|  |               } | ||||||
|  |             pgate = pgate && good; | ||||||
|  |             } | ||||||
|           } |           } | ||||||
|          |          | ||||||
|         if(pgate) { |         if(pgate) { | ||||||
| @@ -425,7 +433,7 @@ void giantLandSwitch(cell *c, int d, cell *from) { | |||||||
|           else |           else | ||||||
|             v = 6; |             v = 6; | ||||||
|           } |           } | ||||||
|         else if(torus || weirdhyperbolic || quotient) { |         else if(torus || hyperbolic_not37 || quotient) { | ||||||
|           v = hrand(100) < 25 ? 24 : 16; |           v = hrand(100) < 25 ? 24 : 16; | ||||||
|           } |           } | ||||||
|         else if(euclid) { |         else if(euclid) { | ||||||
|   | |||||||
| @@ -1215,9 +1215,6 @@ int isLandValid(eLand l) { | |||||||
|   if((l == laPower || l == laEmerald || l == laPalace) && !stdeuc && !bigsphere) |   if((l == laPower || l == laEmerald || l == laPalace) && !stdeuc && !bigsphere) | ||||||
|     return 1; |     return 1; | ||||||
|  |  | ||||||
|   if((l == laPower || l == laEmerald || l == laPalace) && gp::on) |  | ||||||
|     return 1; |  | ||||||
|  |  | ||||||
|   if(l == laDragon && !stdeuc) |   if(l == laDragon && !stdeuc) | ||||||
|     return 1; |     return 1; | ||||||
|  |  | ||||||
| @@ -1253,9 +1250,6 @@ int isLandValid(eLand l) { | |||||||
|   if(l == laZebra && !(stdeuc || (a4 && nonbitrunc) || a46 || quotient == 1)) |   if(l == laZebra && !(stdeuc || (a4 && nonbitrunc) || a46 || quotient == 1)) | ||||||
|     return 0; |     return 0; | ||||||
|    |    | ||||||
|   if(l == laZebra && gp::on) |  | ||||||
|     return 1; |  | ||||||
|    |  | ||||||
|   if(l == laCrossroads3 && euclid) |   if(l == laCrossroads3 && euclid) | ||||||
|     return 1; // because it is not accurate |     return 1; // because it is not accurate | ||||||
|  |  | ||||||
|   | |||||||
| @@ -128,6 +128,7 @@ int land50(cell *c) { | |||||||
| int polara50(cell *c) { | int polara50(cell *c) { | ||||||
|   if(c->type != 6) return polara50(fiftyval(c)); |   if(c->type != 6) return polara50(fiftyval(c)); | ||||||
|   else if(sphere || euclid || S7>7 || S6>6) return 0; |   else if(sphere || euclid || S7>7 || S6>6) return 0; | ||||||
|  |   else if(gp::on) return polara50(fiftyval(c->master->c7)); | ||||||
|   else { |   else { | ||||||
|     if(cdist50(createMov(c,0)) < 3) return polara50(createMov(c,0)); |     if(cdist50(createMov(c,0)) < 3) return polara50(createMov(c,0)); | ||||||
|     if(cdist50(createMov(c,2)) < 3) return polara50(createMov(c,2)); |     if(cdist50(createMov(c,2)) < 3) return polara50(createMov(c,2)); | ||||||
| @@ -140,6 +141,7 @@ int polarb50(cell *c) { | |||||||
|   if(euclid) return true; |   if(euclid) return true; | ||||||
|   if(c->type != 6) return polarb50(fiftyval(c)); |   if(c->type != 6) return polarb50(fiftyval(c)); | ||||||
|   else if(sphere || euclid || S7>7 || S6>6) return true; |   else if(sphere || euclid || S7>7 || S6>6) return true; | ||||||
|  |   else if(gp::on) return polarb50(fiftyval(c->master->c7)); | ||||||
|   else { |   else { | ||||||
|     if(cdist50(createMov(c,0)) < 3) return polarb50(createMov(c,0)); |     if(cdist50(createMov(c,0)) < 3) return polarb50(createMov(c,0)); | ||||||
|     if(cdist50(createMov(c,2)) < 3) return polarb50(createMov(c,2)); |     if(cdist50(createMov(c,2)) < 3) return polarb50(createMov(c,2)); | ||||||
| @@ -248,6 +250,7 @@ int zebra40(cell *c) { | |||||||
|     else return 4+(v-4)/2; |     else return 4+(v-4)/2; | ||||||
|     } |     } | ||||||
|   else if(ctof(c)) return (c->master->zebraval/10); |   else if(ctof(c)) return (c->master->zebraval/10); | ||||||
|  |   else if(gp::on) return zebra40(c->master->c7); | ||||||
|   else if(a4) { |   else if(a4) { | ||||||
|     int ws = dir_bitrunc457(c); |     int ws = dir_bitrunc457(c); | ||||||
|     if(ws < 0) return -ws; |     if(ws < 0) return -ws; | ||||||
| @@ -298,6 +301,7 @@ int zebra40(cell *c) { | |||||||
| int zebra3(cell *c) { | int zebra3(cell *c) { | ||||||
|   if(c->type != 6) return (c->master->zebraval/10)/4; |   if(c->type != 6) return (c->master->zebraval/10)/4; | ||||||
|   else if(sphere || S7>7 || S6>6) return 0; |   else if(sphere || S7>7 || S6>6) return 0; | ||||||
|  |   else if(gp::on) return zebra40(c->master->c7); | ||||||
|   else {  |   else {  | ||||||
|     int ii[3]; |     int ii[3]; | ||||||
|     ii[0] = (c->mov[0]->master->zebraval/10)/4; |     ii[0] = (c->mov[0]->master->zebraval/10)/4; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue