mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-27 02:20:36 +00:00
ls:: fixed the generation of various lands in horodisk/voronoi
This commit is contained in:
parent
66ea0804cf
commit
9fbc73025e
17
landgen.cpp
17
landgen.cpp
@ -276,7 +276,7 @@ EX void place_random_gate_continuous(cell *c) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
EX void giantLandSwitch(cell *c, int d, cell *from) {
|
EX void giantLandSwitch(cell *c, int d, cell *from) {
|
||||||
bool fargen = d == min(BARLEV, ls::hv_structure() ? 8 : 9);
|
bool fargen = d == 9;
|
||||||
switch(c->land) {
|
switch(c->land) {
|
||||||
|
|
||||||
case laPrairie: // -------------------------------------------------------------
|
case laPrairie: // -------------------------------------------------------------
|
||||||
@ -405,7 +405,7 @@ EX void giantLandSwitch(cell *c, int d, cell *from) {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
if(d == (ls::hv_structure() ? 8 : 9)) {
|
if(d == 9) {
|
||||||
cell *c2 = NONSTDVAR ? c->master->c7 : c;
|
cell *c2 = NONSTDVAR ? c->master->c7 : c;
|
||||||
if(cdist50(c2) == 3 && polarb50(c2))
|
if(cdist50(c2) == 3 && polarb50(c2))
|
||||||
c->wall = waPalace;
|
c->wall = waPalace;
|
||||||
@ -1669,13 +1669,11 @@ EX void giantLandSwitch(cell *c, int d, cell *from) {
|
|||||||
|
|
||||||
if(d == 8 && c->land == laKraken && kraken_pseudohept(c) && hrand(1000) <= 2) {
|
if(d == 8 && c->land == laKraken && kraken_pseudohept(c) && hrand(1000) <= 2) {
|
||||||
c->wall = waNone;
|
c->wall = waNone;
|
||||||
if(ls::hv_structure()) forCellCM(c2, c) setdist(c2, 8, c);
|
|
||||||
forCellEx(c2, c) c2->wall = waNone;
|
forCellEx(c2, c) c2->wall = waNone;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(d == 8 && !kraken_pseudohept(c) && hrand_monster(20000) < 10 + 3 * items[itKraken] + 2 * yendor::hardness() && c->wall == waSea && !c->item && !c->monst && !safety) {
|
if(d == 8 && !kraken_pseudohept(c) && hrand_monster(20000) < 10 + 3 * items[itKraken] + 2 * yendor::hardness() && c->wall == waSea && !c->item && !c->monst && !safety) {
|
||||||
bool ok = true;
|
bool ok = true;
|
||||||
if(ls::hv_structure()) forCellCM(c2, c) setdist(c2, 8, c);
|
|
||||||
forCellEx(c2, c)
|
forCellEx(c2, c)
|
||||||
if(c2->wall != waSea || c2->item || c2->monst)
|
if(c2->wall != waSea || c2->item || c2->monst)
|
||||||
ok = false;
|
ok = false;
|
||||||
@ -1984,7 +1982,7 @@ EX void giantLandSwitch(cell *c, int d, cell *from) {
|
|||||||
for(int i=0; i<c->type; i++) {
|
for(int i=0; i<c->type; i++) {
|
||||||
cell *c2 = c->move(i);
|
cell *c2 = c->move(i);
|
||||||
if(c2 && c2->wall == waRose) nww++;
|
if(c2 && c2->wall == waRose) nww++;
|
||||||
if(c2 && !ls::any_chaos() && !ls::hv_structure()) for(int j=0; j<c2->type; j++) {
|
if(c2 && !ls::any_chaos()) for(int j=0; j<c2->type; j++) {
|
||||||
cell *c3 = c2->move(j);
|
cell *c3 = c2->move(j);
|
||||||
// note: c3->land is required for Android --
|
// note: c3->land is required for Android --
|
||||||
// not strictly equivalent since another land there might be not yet generated
|
// not strictly equivalent since another land there might be not yet generated
|
||||||
@ -2543,7 +2541,7 @@ EX void giantLandSwitch(cell *c, int d, cell *from) {
|
|||||||
|
|
||||||
case laEclectic: {
|
case laEclectic: {
|
||||||
|
|
||||||
if(d >= (ls::hv_structure() ? 8 : 9)) c->wall = waChasm;
|
if(d >= 9) c->wall = waChasm;
|
||||||
|
|
||||||
if(d == 8) wfc::schedule(c);
|
if(d == 8) wfc::schedule(c);
|
||||||
|
|
||||||
@ -2748,7 +2746,7 @@ EX void giantLandSwitch(cell *c, int d, cell *from) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case laFrog:
|
case laFrog:
|
||||||
if(d == (ls::hv_structure() ? 8 : 9)) {
|
if(d == 9) {
|
||||||
if(randomPatternsMode ? RANDPAT : !is_zebra_trapdoor(c)) {
|
if(randomPatternsMode ? RANDPAT : !is_zebra_trapdoor(c)) {
|
||||||
if(hrand(2000) < PT(100 + 2 * kills[moFrog] + 2 * kills[moPhaser] + 2 * kills[moVaulter], 100) && notDippingFor(itFrog)) {
|
if(hrand(2000) < PT(100 + 2 * kills[moFrog] + 2 * kills[moPhaser] + 2 * kills[moVaulter], 100) && notDippingFor(itFrog)) {
|
||||||
bool ok = true;
|
bool ok = true;
|
||||||
@ -3048,10 +3046,13 @@ EX void setdist(cell *c, int d, cell *from) {
|
|||||||
|
|
||||||
if(!c->monst) c->stuntime = 0;
|
if(!c->monst) c->stuntime = 0;
|
||||||
|
|
||||||
giantLandSwitch(c, d, from);
|
bool big_first = ls::hv_structure();
|
||||||
|
if(!big_first) giantLandSwitch(c, d, from);
|
||||||
|
|
||||||
if(d == min(reduced_barlev, 9)) moreBigStuff(c);
|
if(d == min(reduced_barlev, 9)) moreBigStuff(c);
|
||||||
|
|
||||||
|
if(big_first) giantLandSwitch(c, d, from);
|
||||||
|
|
||||||
if(d == 7) repairLandgen(c);
|
if(d == 7) repairLandgen(c);
|
||||||
|
|
||||||
// the number of tiles in the standard geometry has about 7553 digits!
|
// the number of tiles in the standard geometry has about 7553 digits!
|
||||||
|
Loading…
Reference in New Issue
Block a user