mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-11-23 13:07:16 +00:00
strict_tree_rules() added
This commit is contained in:
parent
0a6746f296
commit
2320619b86
@ -1376,6 +1376,7 @@ EX int wallchance(cell *c, bool deepOcean) {
|
||||
/** \brief should we generate the horocycles in the current geometry? */
|
||||
EX bool horo_ok() {
|
||||
if(INVERSE) return false;
|
||||
if(currentmap->strict_tree_rules()) return false;
|
||||
return hyperbolic && !bt::in() && !arcm::in() && !kite::in() && !experimental && !hybri && !arb::in() && !quotient;
|
||||
}
|
||||
|
||||
@ -1929,6 +1930,7 @@ EX void gen_temple(cell *c) {
|
||||
}
|
||||
|
||||
EX void moreBigStuff(cell *c) {
|
||||
if(currentmap->strict_tree_rules()) return;
|
||||
|
||||
if((bearsCamelot(c->land) && !euclid && !quotient && !nil) || c->land == laCamelot)
|
||||
if(have_alt(c)) if(!(bt::in() && specialland != laCamelot))
|
||||
|
2
cell.cpp
2
cell.cpp
@ -59,6 +59,8 @@ struct hrmap {
|
||||
virtual transmatrix spin_from(cell *c, int d, ld bonus=0);
|
||||
|
||||
virtual double spacedist(cell *c, int i) { return hdist0(tC0(adj(c, i))); }
|
||||
|
||||
virtual bool strict_tree_rules() { return false; }
|
||||
|
||||
virtual void find_cell_connection(cell *c, int d);
|
||||
virtual int shvid(cell *c) { return 0; }
|
||||
|
@ -974,6 +974,8 @@ EX struct dqi_poly *draw_shapevec(cell *c, const shiftmatrix& V, const vector<hp
|
||||
if(no_wall_rendering) return NULL;
|
||||
if(!c) return &queuepolyat(V, shv[0], col, prio);
|
||||
else if(WDIM == 3) return NULL;
|
||||
else if(currentmap->strict_tree_rules()) return &queuepolyat(V, shv[shvid(c)], col, prio);
|
||||
|
||||
#if CAP_GP
|
||||
else if(GOLDBERG) {
|
||||
int id = gp::get_plainshape_id(c);
|
||||
|
10
pattern2.cpp
10
pattern2.cpp
@ -895,7 +895,7 @@ EX namespace patterns {
|
||||
}
|
||||
|
||||
void val_all(cell *c, patterninfo &si, int sub, int pat) {
|
||||
if(IRREGULAR || arcm::in() || bt::in() || arb::in() || WDIM == 3) si.symmetries = c->type;
|
||||
if(IRREGULAR || arcm::in() || bt::in() || arb::in() || WDIM == 3 || currentmap->strict_tree_rules()) si.symmetries = c->type;
|
||||
else if(a46) val46(c, si, sub, pat);
|
||||
else if(a38) val38(c, si, sub, pat);
|
||||
else if(S7 < 6 && S3 == 3 && !INVERSE && !kite::in()) valSibling(c, si, sub, pat);
|
||||
@ -1088,6 +1088,8 @@ EX namespace patterns {
|
||||
if(sub & SPF_EXTRASYM) si.reflect = true;
|
||||
return si;
|
||||
}
|
||||
|
||||
if(currentmap->strict_tree_rules()) return si;
|
||||
|
||||
if(arb::in()) {
|
||||
si.id = arb::id_of(c->master);
|
||||
@ -2680,6 +2682,12 @@ EX namespace linepatterns {
|
||||
|
||||
linepattern patTree("underlying tree", 0x00d0d000, cheating,
|
||||
ALLCELLS(
|
||||
|
||||
if(currentmap->strict_tree_rules()) {
|
||||
gridlinef(V, C0, V * currentmap->adj(c, 0), C0, col, 2 + vid.linequality); continue;
|
||||
return;
|
||||
}
|
||||
|
||||
if(is_master(c)) {
|
||||
int dir = updir(c->master);
|
||||
if(dir == -1) continue;
|
||||
|
Loading…
Reference in New Issue
Block a user