From bdfa5e874fe673d4cea78de78ea051019c5b542a Mon Sep 17 00:00:00 2001 From: Hyper <34012267+hyperbx@users.noreply.github.com> Date: Sun, 20 Oct 2024 00:14:57 +0100 Subject: [PATCH] config: add exception handler --- UnleashedRecomp/config.cpp | 75 +++++++++++++++++++++----------------- 1 file changed, 41 insertions(+), 34 deletions(-) diff --git a/UnleashedRecomp/config.cpp b/UnleashedRecomp/config.cpp index 5c188f7..a765501 100644 --- a/UnleashedRecomp/config.cpp +++ b/UnleashedRecomp/config.cpp @@ -1,44 +1,51 @@ void Config::Load() { - auto toml = toml::parse_file(TOML_FILE); - - TOML_BEGIN_SECTION("System") + try { - TOML_READ_ENUM(ELanguage, Language); - TOML_READ_ENUM(EScoreBehaviour, ScoreBehaviour); - TOML_READ_BOOLEAN(Hints); - TOML_READ_BOOLEAN(WerehogHubTransformVideo); - } - TOML_END_SECTION(); + auto toml = toml::parse_file(TOML_FILE); - TOML_BEGIN_SECTION("Controls") - { - TOML_READ_BOOLEAN(XButtonHoming); - TOML_READ_BOOLEAN(UnleashCancel); - } - TOML_END_SECTION(); + TOML_BEGIN_SECTION("System") + { + TOML_READ_ENUM(ELanguage, Language); + TOML_READ_ENUM(EScoreBehaviour, ScoreBehaviour); + TOML_READ_BOOLEAN(Hints); + TOML_READ_BOOLEAN(WerehogHubTransformVideo); + } + TOML_END_SECTION(); - TOML_BEGIN_SECTION("Audio") - { - TOML_READ_BOOLEAN(WerehogBattleMusic); - } - TOML_END_SECTION(); + TOML_BEGIN_SECTION("Controls") + { + TOML_READ_BOOLEAN(XButtonHoming); + TOML_READ_BOOLEAN(UnleashCancel); + } + TOML_END_SECTION(); - TOML_BEGIN_SECTION("Video") - { - TOML_READ_INTEGER(WindowWidth); - TOML_READ_INTEGER(WindowHeight); - TOML_READ_FLOAT(ResolutionScale); - TOML_READ_INTEGER(ShadowResolution); - TOML_READ_INTEGER(MSAA); - TOML_READ_ENUM(EMovieScaleMode, MovieScaleMode); - TOML_READ_ENUM(EUIScaleMode, UIScaleMode); - TOML_READ_BOOLEAN(AlphaToCoverage); - TOML_READ_BOOLEAN(Fullscreen); - TOML_READ_BOOLEAN(VSync); - TOML_READ_INTEGER(BufferCount); + TOML_BEGIN_SECTION("Audio") + { + TOML_READ_BOOLEAN(WerehogBattleMusic); + } + TOML_END_SECTION(); + + TOML_BEGIN_SECTION("Video") + { + TOML_READ_INTEGER(WindowWidth); + TOML_READ_INTEGER(WindowHeight); + TOML_READ_FLOAT(ResolutionScale); + TOML_READ_INTEGER(ShadowResolution); + TOML_READ_INTEGER(MSAA); + TOML_READ_ENUM(EMovieScaleMode, MovieScaleMode); + TOML_READ_ENUM(EUIScaleMode, UIScaleMode); + TOML_READ_BOOLEAN(AlphaToCoverage); + TOML_READ_BOOLEAN(Fullscreen); + TOML_READ_BOOLEAN(VSync); + TOML_READ_INTEGER(BufferCount); + } + TOML_END_SECTION(); + } + catch (toml::parse_error& err) + { + printf("Failed to parse configuration: %s\n", err.what()); } - TOML_END_SECTION(); } void Config::Save()