mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-11-20 11:54:48 +00:00
in binary tilings, starting in a horocyclic land (not singleland) now generates a single horocycle
This commit is contained in:
parent
ad235ee8e1
commit
b8aaf5c09a
@ -1420,9 +1420,13 @@ EX bool in_single_horo(cell *c, eLand horoland) {
|
|||||||
return single_horo(horoland) || celldistAlt(c) <= 0;
|
return single_horo(horoland) || celldistAlt(c) <= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EX bool inside_starting_horo(cell *c, eLand horoland) {
|
||||||
|
return specialland == horoland && celldistAlt(c) <= 0;
|
||||||
|
}
|
||||||
|
|
||||||
EX bool extend_alt(cell *c, eLand horoland, eLand overland, bool extend_in_single IS(true), int dist IS(horo_gen_distance())) {
|
EX bool extend_alt(cell *c, eLand horoland, eLand overland, bool extend_in_single IS(true), int dist IS(horo_gen_distance())) {
|
||||||
if(c->land != horoland && c->land != overland && !(c->land == laBrownian && overland == laOcean)) return false;
|
if(c->land != horoland && c->land != overland && !(c->land == laBrownian && overland == laOcean)) return false;
|
||||||
if(bt::in() && !single_horo(horoland)) return false;
|
if(bt::in() && !single_horo(horoland) && !inside_starting_horo(c, horoland)) return false;
|
||||||
if(have_alt(c) && ((ls::single() && extend_in_single) || masterAlt(c) <= dist)) {
|
if(have_alt(c) && ((ls::single() && extend_in_single) || masterAlt(c) <= dist)) {
|
||||||
gen_alt(c);
|
gen_alt(c);
|
||||||
preventbarriers(c);
|
preventbarriers(c);
|
||||||
@ -1829,10 +1833,10 @@ EX void buildCamelot(cell *c) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
EX int masterAlt(cell *c) {
|
EX int masterAlt(cell *c) {
|
||||||
|
if(eubinary) return celldistAlt(c);
|
||||||
#if MAXMDIM >= 4
|
#if MAXMDIM >= 4
|
||||||
if(WDIM == 3 && hyperbolic && !reg3::in_rule()) return reg3::altdist(c->master);
|
if(WDIM == 3 && hyperbolic && !reg3::in_rule()) return reg3::altdist(c->master);
|
||||||
#endif
|
#endif
|
||||||
if(eubinary) return celldistAlt(c);
|
|
||||||
return c->master->alt->distance;
|
return c->master->alt->distance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user