fix(macos): resolve osu updater loop and patcher wine compatibility
- Remove host Apple Braille font entries from Wine prefix registry to prevent cold-start GDI+ AccessViolationException. - Purge .require_update, help.txt, and _pending prior to osu! launch so the game launches directly with -devserver ez-pp.farm instead of entering the updater. - Reset _UpdateFailCount in osu!.cfg and ensure execute.bat points to ez-pp.farm. - Update ensure_patcher_compatibility to patch osu!.patcher.exe and embedded ManagedInjector.Lib for .NET 4.0 compatibility under Wine. - Include theme editor, cursor, and download button refinements on themes-v2 branch.
This commit is contained in:
1 parent
a2b03d3014
commit
e52399911c
19 files changed
+1362
-265
No files matched your search
@@ -832,6 +832,16 @@
|
||||
}
|
||||
};
|
||||
|
||||
const revealLauncherWindow = async () => {
|
||||
try {
|
||||
await invoke('reveal_window');
|
||||
} catch {
|
||||
await getCurrentWindow().show();
|
||||
await getCurrentWindow().unminimize();
|
||||
await getCurrentWindow().setFocus();
|
||||
}
|
||||
};
|
||||
|
||||
const launch = async (skipUpdateCheck = false) => {
|
||||
if ($launching) return;
|
||||
launchInfo = 'Checking if osu! is already running...';
|
||||
@@ -1084,10 +1094,9 @@
|
||||
await new Promise((res) => setTimeout(res, 1500));
|
||||
launchInfo = 'Launching osu!...';
|
||||
|
||||
fadeGlobalVolume($custom_theme_volume, 0, 2000, pauseGlobalMedia);
|
||||
|
||||
/* await replaceUIFiles(osuPath, false); */
|
||||
await new Promise((res) => setTimeout(res, 1000));
|
||||
await fadeGlobalVolume($custom_theme_volume, 0, 800);
|
||||
pauseGlobalMedia();
|
||||
await new Promise((res) => setTimeout(res, 200));
|
||||
await getCurrentWindow().hide();
|
||||
|
||||
let presenceUpdater: number | undefined = undefined;
|
||||
@@ -1199,11 +1208,12 @@
|
||||
|
||||
if (otd_run) await stopOpenTabletDriver();
|
||||
|
||||
await revealLauncherWindow();
|
||||
await new Promise((res) => setTimeout(res, 100));
|
||||
|
||||
setCurrentTimeGlobalMedia(0);
|
||||
resumeGlobalMedia();
|
||||
fadeGlobalVolume(0, $custom_theme_volume, 2000);
|
||||
|
||||
await getCurrentWindow().show();
|
||||
fadeGlobalVolume(0, $custom_theme_volume, 1500);
|
||||
if (presenceUpdater) {
|
||||
window.clearInterval(presenceUpdater);
|
||||
try {
|
||||
@@ -1245,7 +1255,9 @@
|
||||
} catch (err) {
|
||||
cleanup = false;
|
||||
const error = err as Error;
|
||||
await getCurrentWindow().show();
|
||||
await revealLauncherWindow();
|
||||
resumeGlobalMedia();
|
||||
fadeGlobalVolume(0, $custom_theme_volume, 1000);
|
||||
if (error.name === 'AbortError') {
|
||||
sileo.error({
|
||||
title: 'Hmmm...',
|
||||
@@ -4036,7 +4048,14 @@
|
||||
: $osuInstallationPath === ''
|
||||
? 'No osu! path'
|
||||
: 'Launch'}
|
||||
launchDisabled={$osuInstallationPath === '' || $serverConnectionFails > 1 || $launching}
|
||||
launchSubtext={$launching && !cleanup
|
||||
? launchInfo
|
||||
: $osuInstallationPath === ''
|
||||
? 'osu! path is not set!'
|
||||
: $serverConnectionFails > 1
|
||||
? 'No connection...'
|
||||
: undefined}
|
||||
launchDisabled={$osuInstallationPath === '' || $serverConnectionFails > 1}
|
||||
oninteraction={triggerThemeScriptElement}
|
||||
onbuttonaction={handleThemeButtonAction}
|
||||
/>
|
||||
|
||||
Reference in new issue
Block a user