From 67d8c18088890bc4e148d122783f11d03d28aefb Mon Sep 17 00:00:00 2001 From: Hirek Date: Thu, 6 Nov 2025 18:31:17 +0100 Subject: [PATCH 1/5] Move configs to %appdata%/MaSzyna --- application.cpp | 2 +- drivermouseinput.cpp | 2 +- gamepadinput.cpp | 2 +- keyboardinput.cpp | 2 +- uart.cpp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/application.cpp b/application.cpp index 323c9461..28d55754 100644 --- a/application.cpp +++ b/application.cpp @@ -907,7 +907,7 @@ eu07_application::init_settings( int Argc, char *Argv[] ) { #ifdef _WIN32 if (const char *appdata = std::getenv("APPDATA")) { - iniPath = fs::path(appdata) / "MaSzyna" / "Config" / "eu07.ini"; + iniPath = fs::path(appdata) / "MaSzyna" / "eu07.ini"; } #else if (const char *home = std::getenv("HOME")) diff --git a/drivermouseinput.cpp b/drivermouseinput.cpp index 0a86011d..0cf8b250 100644 --- a/drivermouseinput.cpp +++ b/drivermouseinput.cpp @@ -185,7 +185,7 @@ drivermouse_input::recall_bindings() { #ifdef _WIN32 if (const char *appdata = std::getenv("APPDATA")) { - fs::path appPath = fs::path(appdata) / "MaSzyna" / "Config" / "eu07_input-mouse.ini"; + fs::path appPath = fs::path(appdata) / "MaSzyna" / "eu07_input-mouse.ini"; if (fs::exists(appPath)) filePath = appPath.string(); } diff --git a/gamepadinput.cpp b/gamepadinput.cpp index a9e3e234..8292a25d 100644 --- a/gamepadinput.cpp +++ b/gamepadinput.cpp @@ -159,7 +159,7 @@ gamepad_input::recall_bindings() { #ifdef _WIN32 if (const char *appdata = std::getenv("APPDATA")) { - fs::path appPath = fs::path(appdata) / "MaSzyna" / "Config" / "eu07_input-gamepad.ini"; + fs::path appPath = fs::path(appdata) / "MaSzyna" / "eu07_input-gamepad.ini"; if (fs::exists(appPath)) filePath = appPath.string(); } diff --git a/keyboardinput.cpp b/keyboardinput.cpp index 1052752c..e1b499d0 100644 --- a/keyboardinput.cpp +++ b/keyboardinput.cpp @@ -127,7 +127,7 @@ keyboard_input::recall_bindings() { #ifdef _WIN32 if (const char *appdata = std::getenv("APPDATA")) { - iniPath = fs::path(appdata) / "MaSzyna" / "Config" / "eu07_input-keyboard.ini"; + iniPath = fs::path(appdata) / "MaSzyna" / "eu07_input-keyboard.ini"; } #else if (const char *home = std::getenv("HOME")) diff --git a/uart.cpp b/uart.cpp index b2be9496..ad26b15a 100644 --- a/uart.cpp +++ b/uart.cpp @@ -197,7 +197,7 @@ uart_input::recall_bindings() { #ifdef _WIN32 if (const char *appdata = std::getenv("APPDATA")) { - fs::path appPath = fs::path(appdata) / "MaSzyna" / "Config" / "eu07_input-uart.ini"; + fs::path appPath = fs::path(appdata) / "MaSzyna" / "eu07_input-uart.ini"; if (fs::exists(appPath)) filePath = appPath.string(); } From ee01ad6e65f0eb2241b4e12486b45b63a6d882cc Mon Sep 17 00:00:00 2001 From: Hirek Date: Thu, 6 Nov 2025 22:36:42 +0100 Subject: [PATCH 2/5] Subthreads fix for asynchronous logging and discord threads --- application.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/application.cpp b/application.cpp index 28d55754..e47839a6 100644 --- a/application.cpp +++ b/application.cpp @@ -55,7 +55,6 @@ http://mozilla.org/MPL/2.0/. eu07_application Application; screenshot_manager screenshot_man; - ui_layer uilayerstaticinitializer; #ifdef _WIN32 @@ -581,6 +580,9 @@ eu07_application::run() { std::this_thread::sleep_for( Global.minframetime - frametime ); } } + Global.applicationQuitOrder = true; + Global.threads["DiscordRPC"].join(); // wait for DiscordRPC thread to finish + Global.threads["LogService"].join(); // wait for logging thread to finish return 0; } From 54217412967643701d3947145057d6b9e422a947 Mon Sep 17 00:00:00 2001 From: Hirek Date: Fri, 7 Nov 2025 10:30:22 +0100 Subject: [PATCH 3/5] Change subsystem from console to windows --- EU07.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EU07.cpp b/EU07.cpp index 9b2e540b..2ecf53b3 100644 --- a/EU07.cpp +++ b/EU07.cpp @@ -29,7 +29,7 @@ Stele, firleju, szociu, hunter, ZiomalCl, OLI_EU and others #endif #ifdef _MSC_VER -#pragma comment(linker, "/subsystem:console /ENTRY:mainCRTStartup") +#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup") #endif void export_e3d_standalone(std::string in, std::string out, int flags, bool dynamic); From a7b44892b73301bdbea9cb26cf549bccb9923c40 Mon Sep 17 00:00:00 2001 From: Hirek Date: Wed, 12 Nov 2025 20:12:22 +0100 Subject: [PATCH 4/5] Change multisampling limit from 8 to 16 --- Globals.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Globals.cpp b/Globals.cpp index 40fb13a6..c2d6b096 100644 --- a/Globals.cpp +++ b/Globals.cpp @@ -488,7 +488,7 @@ global_settings::ConfigParse(cParser &Parser) { // tryb antyaliasingu: 0=brak,1=2px,2=4px Parser.getTokens(1, false); Parser >> iMultisampling; - iMultisampling = clamp(iMultisampling, 0, 3); + iMultisampling = clamp(iMultisampling, 0, 4); // liczone 2 ^ n } else if (token == "latitude") { From acc4cca4c2da437d4c5d6edb6f419e5026b32acf Mon Sep 17 00:00:00 2001 From: Hirek Date: Sun, 16 Nov 2025 16:32:48 +0100 Subject: [PATCH 5/5] Fix crash on exit --- application.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/application.cpp b/application.cpp index e47839a6..83debea4 100644 --- a/application.cpp +++ b/application.cpp @@ -615,8 +615,19 @@ eu07_application::release_python_lock() { void eu07_application::exit() { Global.applicationQuitOrder = true; - Global.threads["LogService"].join(); // kill log service - Global.threads["DiscordRPC"].join(); // kill DiscordRPC service + auto it = Global.threads.find("LogService"); + if (it != Global.threads.end()) + { + if (it->second.joinable()) + it->second.join(); + } + + it = Global.threads.find("DiscordRPC"); + if (it != Global.threads.end()) + { + if (it->second.joinable()) + it->second.join(); + } for (auto &mode : m_modes)