diff --git a/src/main.cpp b/src/main.cpp index 13db00d..f377195 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -14,10 +14,6 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -#ifndef SAVETOOL_DEBUG_BUILD -#include -#endif - #include #include @@ -26,38 +22,45 @@ #include #include +#include "Logger/MagnumLogBuffer.h" #include "SaveTool/SaveTool.h" int main(int argc, char** argv) { + MagnumLogBuffer debug_intercept_buffer{EntryType::Info}; + MagnumLogBuffer warning_intercept_buffer{EntryType::Warning}; + MagnumLogBuffer error_intercept_buffer{EntryType::Error}; + std::ostream debug_intercept_stream{&debug_intercept_buffer}; + std::ostream warning_intercept_stream{&warning_intercept_buffer}; + std::ostream error_intercept_stream{&error_intercept_buffer}; + Debug debug_intercept{&debug_intercept_stream}; + Warning warning_intercept{&warning_intercept_stream}; + Error error_intercept{&error_intercept_stream}; + + LOG_INFO("M.A.S.S. Builder Save Tool version " SAVETOOL_VERSION); + auto str = std::setlocale(LC_ALL, ".utf-8"); - if(str && !Containers::StringView{str}.hasSuffix(".utf8")) { - SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Error", - "Your system doesn't support UTF-8.", nullptr); - return EXIT_FAILURE; + if(str) { + Containers::StringView locale{str}; + LOG_INFO_FORMAT("Current locale: {}", locale); + + if(!locale.hasSuffix(".utf8")) { + SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Error", + "Your system doesn't support UTF-8.", nullptr); + return EXIT_FAILURE; + } } - #ifndef SAVETOOL_DEBUG_BUILD - std::ofstream output{"SaveToolLog.txt", std::ios::trunc|std::ios::out}; - - Utility::Debug d{&output}; - Utility::Warning w{&output}; - Utility::Error e{&output}; - #else - Utility::Warning w{Utility::Debug::defaultOutput()}; - Utility::Error e{Utility::Debug::defaultOutput()}; - #endif - - Utility::Debug{} << "M.A.S.S. Builder Save Tool version " SAVETOOL_VERSION; - auto mutex_handle = CreateMutexW(nullptr, 0, L"MassBuilderSaveTool"); if(!mutex_handle) { + LOG_ERROR_FORMAT("Error initialising the instance checker. GetLastError() returned {}.", GetLastError()); SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Error", "There was an error initialising the single-instance checker.",nullptr); return EXIT_FAILURE; } if(GetLastError() == ERROR_ALREADY_EXISTS) { + LOG_ERROR("Another instance of the application was detected."); SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Error", "There can be only one running instance of the application.",nullptr); return EXIT_FAILURE; @@ -66,13 +69,13 @@ int main(int argc, char** argv) { std::uint32_t brand[12]; if (!__get_cpuid_max(0x80000004, nullptr)) { - Utility::Warning{} << "Warning: CPUID features not supported. Can't get the current processor's model."; + LOG_WARNING("CPUID features not supported. Can't get the current processor's model."); } else { __get_cpuid(0x80000002, brand+0x0, brand+0x1, brand+0x2, brand+0x3); __get_cpuid(0x80000003, brand+0x4, brand+0x5, brand+0x6, brand+0x7); __get_cpuid(0x80000004, brand+0x8, brand+0x9, brand+0xa, brand+0xb); - Utility::Debug{} << "Processor:" << Containers::arrayCast(brand).data(); + LOG_INFO_FORMAT("Processor: {}", Containers::arrayCast(brand).data()); } SaveTool app({argc, argv});