launcher: persist the hook DLL override in the prefix, not in launch options
Wine ignores the game-directory version.dll proxy unless an override names it. WINEDLLOVERRIDES covers only a process the launcher spawns itself, so the documented fallback was to have the user paste Steam launch options by hand - a step a normal player cannot be expected to perform, and the reason the game had to be started through a specific wrapper at all. The launcher now persists version=native,builtin into the prefix registry via Wine own reg tool before launching (ensure_dll_override). It is /f-idempotent, so it runs on every launch and repairs a prefix the player has reset or replaced, and it applies to EVERY launch path including Steam Play. This mirrors what BepInEx documents for Proton (configure the proxy in winecfg rather than the environment) and what Proton already does in this prefix for other titles. Best-effort: a failure is reported in plain language and the launch still carries WINEDLLOVERRIDES. STEAM_LAUNCH_OPTIONS is demoted to a fallback for prefixes we have never prepared. Also fixes a pre-existing clippy manual_is_multiple_of in app.rs that was failing the strict lint gate. fmt clean, clippy -D warnings clean, 75 tests pass.
This commit is contained in:
+1
-1
@@ -2177,7 +2177,7 @@ fn group_thousands(digits: &str) -> String {
|
||||
let len = bytes.len();
|
||||
let mut out = String::with_capacity(len + len / 3);
|
||||
for (i, b) in bytes.iter().enumerate() {
|
||||
if i > 0 && (len - i) % 3 == 0 {
|
||||
if i > 0 && (len - i).is_multiple_of(3) {
|
||||
out.push(',');
|
||||
}
|
||||
out.push(*b as char);
|
||||
|
||||
Reference in New Issue
Block a user