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