Zebra, Palace, Power, and Vineyard are now OK in gp

This commit is contained in:
Zeno Rogue 2018-04-12 11:00:51 +02:00
parent e6a5c41c9b
commit f375ac498a
4 changed files with 15 additions and 9 deletions

View File

@ -3166,7 +3166,7 @@ void toggleGates(cell *ct, eWall type) {
if(type == waClosePlate && nonbitrunc && !gp::on)
toggleGates(ct, type, 2);
else
toggleGates(ct, type, 3);
toggleGates(ct, type, gp::on ? gp::dist_3() : 3);
if(numgates && type == waClosePlate)
playSound(ct, "closegate");
if(numgates && type == waOpenPlate)

View File

@ -164,7 +164,7 @@ void giantLandSwitch(cell *c, int d, cell *from) {
case laPalace: // -------------------------------------------------------------
if(weirdhyperbolic || torus || S7 < 5) {
if(hyperbolic_not37 || torus || S7 < 5) {
if(d == 9) {
int i = hrand(100);
if(i < 10)
@ -213,6 +213,14 @@ void giantLandSwitch(cell *c, int d, cell *from) {
if(nonbitrunc) {
int i = fiftyval049(c);
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) {
@ -425,7 +433,7 @@ void giantLandSwitch(cell *c, int d, cell *from) {
else
v = 6;
}
else if(torus || weirdhyperbolic || quotient) {
else if(torus || hyperbolic_not37 || quotient) {
v = hrand(100) < 25 ? 24 : 16;
}
else if(euclid) {

View File

@ -1215,9 +1215,6 @@ int isLandValid(eLand l) {
if((l == laPower || l == laEmerald || l == laPalace) && !stdeuc && !bigsphere)
return 1;
if((l == laPower || l == laEmerald || l == laPalace) && gp::on)
return 1;
if(l == laDragon && !stdeuc)
return 1;
@ -1253,9 +1250,6 @@ int isLandValid(eLand l) {
if(l == laZebra && !(stdeuc || (a4 && nonbitrunc) || a46 || quotient == 1))
return 0;
if(l == laZebra && gp::on)
return 1;
if(l == laCrossroads3 && euclid)
return 1; // because it is not accurate

View File

@ -128,6 +128,7 @@ int land50(cell *c) {
int polara50(cell *c) {
if(c->type != 6) return polara50(fiftyval(c));
else if(sphere || euclid || S7>7 || S6>6) return 0;
else if(gp::on) return polara50(fiftyval(c->master->c7));
else {
if(cdist50(createMov(c,0)) < 3) return polara50(createMov(c,0));
if(cdist50(createMov(c,2)) < 3) return polara50(createMov(c,2));
@ -140,6 +141,7 @@ int polarb50(cell *c) {
if(euclid) return true;
if(c->type != 6) return polarb50(fiftyval(c));
else if(sphere || euclid || S7>7 || S6>6) return true;
else if(gp::on) return polarb50(fiftyval(c->master->c7));
else {
if(cdist50(createMov(c,0)) < 3) return polarb50(createMov(c,0));
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 if(ctof(c)) return (c->master->zebraval/10);
else if(gp::on) return zebra40(c->master->c7);
else if(a4) {
int ws = dir_bitrunc457(c);
if(ws < 0) return -ws;
@ -298,6 +301,7 @@ int zebra40(cell *c) {
int zebra3(cell *c) {
if(c->type != 6) return (c->master->zebraval/10)/4;
else if(sphere || S7>7 || S6>6) return 0;
else if(gp::on) return zebra40(c->master->c7);
else {
int ii[3];
ii[0] = (c->mov[0]->master->zebraval/10)/4;