Fix attempt to save config when failed to load.

This commit is contained in:
2023-07-27 15:31:47 +08:00
parent 3687a70aec
commit ba2f1d4858

View File

@@ -22,6 +22,8 @@ namespace Cryville.Crtr.Config {
public Ruleset ruleset;
RulesetConfig _rscfg;
bool _loaded;
void OnEnable() {
try {
ChartPlayer.etor = new PdtEvaluator();
@@ -61,6 +63,8 @@ namespace Cryville.Crtr.Config {
m_inputConfigPanel.proxy = proxy;
m_inputConfigPanel.OnConfigEnable();
_loaded = true;
}
catch (Exception ex) {
Popup.CreateException(ex);
@@ -77,15 +81,18 @@ namespace Cryville.Crtr.Config {
}
void OnDisable() {
m_inputConfigPanel.proxy.SaveTo(_rscfg.inputs);
m_inputConfigPanel.proxy.Dispose();
FileInfo cfgfile = new FileInfo(
Game.GameDataPath + "/config/rulesets/" + Settings.Default.LoadRulesetConfig
);
using (StreamWriter cfgwriter = new StreamWriter(cfgfile.FullName, false, Encoding.UTF8)) {
cfgwriter.Write(JsonConvert.SerializeObject(_rscfg, Game.GlobalJsonSerializerSettings));
if (_loaded) {
_loaded = false;
m_inputConfigPanel.proxy.SaveTo(_rscfg.inputs);
m_inputConfigPanel.proxy.Dispose();
FileInfo cfgfile = new FileInfo(
Game.GameDataPath + "/config/rulesets/" + Settings.Default.LoadRulesetConfig
);
using (StreamWriter cfgwriter = new StreamWriter(cfgfile.FullName, false, Encoding.UTF8)) {
cfgwriter.Write(JsonConvert.SerializeObject(_rscfg, Game.GlobalJsonSerializerSettings));
}
m_inputConfigPanel.OnConfigDisable();
}
m_inputConfigPanel.OnConfigDisable();
}
}
}