diff --git a/src/Etterna/MinaCalc/MinaCalc.cpp b/src/Etterna/MinaCalc/MinaCalc.cpp index 6f64fe7699..48d760d0b3 100644 --- a/src/Etterna/MinaCalc/MinaCalc.cpp +++ b/src/Etterna/MinaCalc/MinaCalc.cpp @@ -512,9 +512,18 @@ Calc::InitializeHands(const std::vector& NoteInfo, auto t_keycount = keycount_defined ? keycount : 0u; auto& all_consuming_ulbu = ulbu_collective.at(t_keycount); - // if debug, force params to load - if (debugmode || loadparams) + // if debug, force params to load and reset pmods and base diffs + if (debugmode || loadparams) { all_consuming_ulbu->load_calc_params_from_disk(true); + for (const auto& hand : both_hands) { + for (auto& v : pmod_vals.at(hand)) { + std::fill(v.begin(), v.end(), 1.F); + } + for (auto& v : init_base_diff_vals.at(hand)) { + std::fill(v.begin(), v.end(), 0.F); + } + } + } // reset ulbu patternmod structs // run agnostic patternmod/sequence loop diff --git a/src/Etterna/MinaCalc/UlbuBase.h b/src/Etterna/MinaCalc/UlbuBase.h index eeff33f2f6..098a249e61 100644 --- a/src/Etterna/MinaCalc/UlbuBase.h +++ b/src/Etterna/MinaCalc/UlbuBase.h @@ -58,6 +58,8 @@ struct Bazoinkazoink return pmods; } + /// these are the base diffs which actually must be reset + /// between calc runs or else things break void reset_base_diffs() { for (auto& hand : both_hands) {