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) 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)

View File

@ -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) {

View File

@ -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

View File

@ -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;