mirror of
https://github.com/open-goal/jak-project
synced 2026-05-23 06:54:31 -04:00
process-spawn + pretty printer improvements (#1428)
* some jp support to fix some errors in the original game * music fade toggle * recognize `process-new` macros!! * strip casts in this macro * rename macro * fix cast typecheck * update source 1 * detect kernel stack case * less boilerplate * `manipy-spawn` special case * pretty printer improvements * revert dumb thing from earlier * use shell detection on `send-event` * fix some events * remove unused argument * detect `static-attack-info` and add `CondNoElse` to shell detect * better `attack-info` detect * support `process-spawn` in multi-lets * detect `rand-float-gen` pt 1 * detect as return value * detect in `countdown` and `dotimes` * oops this wasnt working * fancier `send-event`s * clang * update source!! * fix tests * fine jeez * uh okay * fix some accidental regressions * fix more regressions * regression fixes * fix big bug... * extra safety!
This commit is contained in:
@@ -62,10 +62,79 @@ struct LetRewriteStats {
|
||||
int set_vector = 0;
|
||||
int set_vector2 = 0;
|
||||
int send_event = 0;
|
||||
int font_context_meth = 0;
|
||||
int proc_new = 0;
|
||||
int attack_info = 0;
|
||||
int vector_dot = 0;
|
||||
int rand_float_gen = 0;
|
||||
|
||||
int total() const {
|
||||
return dotimes + countdown + abs + abs2 + unused + ja + case_no_else + case_with_else +
|
||||
set_vector + set_vector2 + send_event;
|
||||
set_vector + set_vector2 + send_event + font_context_meth + proc_new + attack_info +
|
||||
vector_dot + rand_float_gen;
|
||||
}
|
||||
|
||||
std::string print() const {
|
||||
std::string out;
|
||||
out += fmt::format("LET REWRITE STATS: {} total\n", total());
|
||||
out += fmt::format(" dotimes: {}\n", dotimes);
|
||||
out += fmt::format(" countdown: {}\n", countdown);
|
||||
out += fmt::format(" abs: {}\n", abs);
|
||||
out += fmt::format(" abs2: {}\n", abs2);
|
||||
out += fmt::format(" ja: {}\n", ja);
|
||||
out += fmt::format(" set_vector: {}\n", set_vector);
|
||||
out += fmt::format(" set_vector2: {}\n", set_vector2);
|
||||
out += fmt::format(" case_no_else: {}\n", case_no_else);
|
||||
out += fmt::format(" case_with_else: {}\n", case_with_else);
|
||||
out += fmt::format(" unused: {}\n", unused);
|
||||
out += fmt::format(" send_event: {}\n", send_event);
|
||||
// out += fmt::format(" font_context_meth: {}\n", font_context_meth);
|
||||
out += fmt::format(" proc_new: {}\n", proc_new);
|
||||
out += fmt::format(" attack_info: {}\n", attack_info);
|
||||
out += fmt::format(" vector_dot: {}\n", vector_dot);
|
||||
out += fmt::format(" rand_float_gen: {}\n", rand_float_gen);
|
||||
return out;
|
||||
}
|
||||
|
||||
LetRewriteStats operator+(const LetRewriteStats& other) {
|
||||
LetRewriteStats result;
|
||||
result.dotimes = dotimes + other.dotimes;
|
||||
result.countdown = countdown + other.countdown;
|
||||
result.abs = abs + other.abs;
|
||||
result.abs2 = abs2 + other.abs2;
|
||||
result.ja = ja + other.ja;
|
||||
result.set_vector = set_vector + other.set_vector;
|
||||
result.set_vector2 = set_vector2 + other.set_vector2;
|
||||
result.case_no_else = case_no_else + other.case_no_else;
|
||||
result.case_with_else = case_with_else + other.case_with_else;
|
||||
result.unused = unused + other.unused;
|
||||
result.send_event = send_event + other.send_event;
|
||||
result.font_context_meth = font_context_meth + other.font_context_meth;
|
||||
result.proc_new = proc_new + other.proc_new;
|
||||
result.attack_info = attack_info + other.attack_info;
|
||||
result.vector_dot = vector_dot + other.vector_dot;
|
||||
result.rand_float_gen = rand_float_gen + other.rand_float_gen;
|
||||
return result;
|
||||
}
|
||||
|
||||
LetRewriteStats& operator+=(const LetRewriteStats& other) {
|
||||
dotimes += other.dotimes;
|
||||
countdown += other.countdown;
|
||||
abs += other.abs;
|
||||
abs2 += other.abs2;
|
||||
ja += other.ja;
|
||||
set_vector += other.set_vector;
|
||||
set_vector2 += other.set_vector2;
|
||||
case_no_else += other.case_no_else;
|
||||
case_with_else += other.case_with_else;
|
||||
unused += other.unused;
|
||||
send_event += other.send_event;
|
||||
font_context_meth += other.font_context_meth;
|
||||
proc_new += other.proc_new;
|
||||
attack_info += other.attack_info;
|
||||
vector_dot += other.vector_dot;
|
||||
rand_float_gen += other.rand_float_gen;
|
||||
return *this;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user