1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-07-05 19:22:48 +00:00

arb:: added find_live_states for parsed trees -- this makes horotiling.tes actually load again

This commit is contained in:
Zeno Rogue 2025-06-22 18:12:54 +02:00
parent ee8d2b0077
commit b1cb5ce8b1

View File

@ -1616,6 +1616,21 @@ void minimize_rules() {
}
}
void find_live_states() {
for(auto& ts: treestates) ts.is_live = true;
while(true) {
int changes = 0;
for(auto& ts: treestates) if(ts.is_live) {
bool ok = false;
for(int r: ts.rules) {
if(r >= 0 && treestates[r].is_live) ok = true;
}
if(!ok) changes++, ts.is_live = false;
}
if(!changes) break;
}
}
void find_possible_parents() {
for(auto& ts: treestates) {
@ -2614,6 +2629,7 @@ EX void verify_parsed_treestates(arb::arbi_tiling& c) {
throw hr_parse_exception("undefined treestate");
}
for(auto& sh: c.shapes) sh.cycle_length = sh.size();
find_live_states();
find_possible_parents();
}