mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-20 07:30:26 +00:00
removed mismatch_error to multiple error causes
This commit is contained in:
parent
19f65644e7
commit
881b262174
14
rulegen.cpp
14
rulegen.cpp
@ -944,10 +944,6 @@ EX pair<int, int> get_code(tcell *c) {
|
||||
|
||||
/* == rule generation == */
|
||||
|
||||
struct mismatch_error : rulegen_retry {
|
||||
mismatch_error() : rulegen_retry("mismatch error") {}
|
||||
};
|
||||
|
||||
EX int rule_root;
|
||||
|
||||
vector<int> gen_rule(twalker cwmain);
|
||||
@ -1039,7 +1035,7 @@ void rules_iteration_for(tcell *c) {
|
||||
|
||||
extend_analyzer(cwmain, z, k, mismatches, treestates[id].giver);
|
||||
mismatches++;
|
||||
throw mismatch_error();
|
||||
throw rulegen_retry("mismatch error");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1047,7 +1043,7 @@ void rules_iteration_for(tcell *c) {
|
||||
debuglist = { cwmain, ts.giver };
|
||||
|
||||
if(mismatches)
|
||||
throw mismatch_error();
|
||||
throw rulegen_retry("mismatch error");
|
||||
|
||||
throw rulegen_failure("no mismatches?!");
|
||||
}
|
||||
@ -1305,7 +1301,7 @@ void find_single_live_branch(twalker at) {
|
||||
int t = at.at->type;
|
||||
auto& r = treestates[id].rules;
|
||||
int q = 0;
|
||||
if(r.empty()) { important.push_back(at.at); throw mismatch_error(); }
|
||||
if(r.empty()) { important.push_back(at.at); throw rulegen_retry("no giver in find_single_live_branch"); }
|
||||
for(int i=0; i<t; i++) if(r[i] >= 0) {
|
||||
if(treestates[r[i]].is_live) q++;
|
||||
}
|
||||
@ -1427,13 +1423,13 @@ EX void rules_iteration() {
|
||||
|
||||
handle_distance_errors();
|
||||
if(isize(important) != N)
|
||||
throw mismatch_error();
|
||||
throw rulegen_retry("need more rules after examine");
|
||||
|
||||
minimize_rules();
|
||||
find_possible_parents();
|
||||
|
||||
if(isize(important) != N)
|
||||
throw mismatch_error();
|
||||
throw rulegen_retry("need more rules after minimize");
|
||||
handle_distance_errors();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user