mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-20 15:40:26 +00:00
arb:: tes files with tree data provided work again
This commit is contained in:
parent
c544ce5ed0
commit
1b832b4a54
@ -102,6 +102,8 @@ struct arbi_tiling {
|
|||||||
bool have_line, have_ph;
|
bool have_line, have_ph;
|
||||||
/* is the tree structure given in the tes file */
|
/* is the tree structure given in the tes file */
|
||||||
bool have_tree;
|
bool have_tree;
|
||||||
|
/* is the valence data reliable */
|
||||||
|
bool have_valence;
|
||||||
/* use "star." if the tessellation includs star polygons */
|
/* use "star." if the tessellation includs star polygons */
|
||||||
bool is_star;
|
bool is_star;
|
||||||
/* use "combinatorial." for combinatorial tessellations; vertex valences computed based on their angles. Currently only rulegen works for combinatorial tessellations */
|
/* use "combinatorial." for combinatorial tessellations; vertex valences computed based on their angles. Currently only rulegen works for combinatorial tessellations */
|
||||||
@ -477,6 +479,7 @@ static void reduce_gcd(int& a, int b) {
|
|||||||
|
|
||||||
EX void compute_vertex_valence(arb::arbi_tiling& ac) {
|
EX void compute_vertex_valence(arb::arbi_tiling& ac) {
|
||||||
int tcl = -1;
|
int tcl = -1;
|
||||||
|
ac.have_valence = true;
|
||||||
|
|
||||||
for(auto& sh: ac.shapes)
|
for(auto& sh: ac.shapes)
|
||||||
sh.cycle_length = isize(sh.vertices) / sh.repeat_value;
|
sh.cycle_length = isize(sh.vertices) / sh.repeat_value;
|
||||||
@ -601,6 +604,7 @@ EX void set_defaults(arb::arbi_tiling& c, bool keep_sliders, string fname) {
|
|||||||
c.floor_scale = .5;
|
c.floor_scale = .5;
|
||||||
c.have_ph = c.have_line = false;
|
c.have_ph = c.have_line = false;
|
||||||
c.have_tree = false;
|
c.have_tree = false;
|
||||||
|
c.have_valence = false;
|
||||||
c.yendor_backsteps = 0;
|
c.yendor_backsteps = 0;
|
||||||
c.is_star = false;
|
c.is_star = false;
|
||||||
c.is_combinatorial = false;
|
c.is_combinatorial = false;
|
||||||
|
@ -72,7 +72,7 @@ EX bool warped_version(eLand l1, eLand l2) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
EX int get_valence(cellwalker bb, int dir, bool& ok) {
|
EX int get_valence(cellwalker bb, int dir, bool& ok) {
|
||||||
if(arb::in()) {
|
if(arb::in() && arb::current_or_slided().have_valence) {
|
||||||
auto& sh = arb::current_or_slided().shapes[arb::id_of(bb.at->master)];
|
auto& sh = arb::current_or_slided().shapes[arb::id_of(bb.at->master)];
|
||||||
if(bb.mirrored) dir = -dir;
|
if(bb.mirrored) dir = -dir;
|
||||||
if(dir == 1)
|
if(dir == 1)
|
||||||
|
Loading…
Reference in New Issue
Block a user