From b1cb5ce8b171126d48637743e25a41316f130734 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Sun, 22 Jun 2025 18:12:54 +0200 Subject: [PATCH] arb:: added find_live_states for parsed trees -- this makes horotiling.tes actually load again --- rulegen.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/rulegen.cpp b/rulegen.cpp index c5850034..b7e5330e 100644 --- a/rulegen.cpp +++ b/rulegen.cpp @@ -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(); }