mirror of
https://github.com/hydralauncher/hydra.git
synced 2025-02-03 00:33:49 +03:00
feat: add optional game params back
This commit is contained in:
parent
6a52cb3f52
commit
b8dcd66cd2
7
src/main/events/helpers/parse-launch-options.ts
Normal file
7
src/main/events/helpers/parse-launch-options.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
export const parseLaunchOptions = (params: string | null): string[] => {
|
||||||
|
if (!params) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
return params.split(" ");
|
||||||
|
};
|
@ -2,7 +2,9 @@ import { gameRepository } from "@main/repository";
|
|||||||
|
|
||||||
import { registerEvent } from "../register-event";
|
import { registerEvent } from "../register-event";
|
||||||
import { shell } from "electron";
|
import { shell } from "electron";
|
||||||
|
import { spawn } from "child_process";
|
||||||
import { parseExecutablePath } from "../helpers/parse-executable-path";
|
import { parseExecutablePath } from "../helpers/parse-executable-path";
|
||||||
|
import { parseLaunchOptions } from "../helpers/parse-launch-options";
|
||||||
|
|
||||||
const openGame = async (
|
const openGame = async (
|
||||||
_event: Electron.IpcMainInvokeEvent,
|
_event: Electron.IpcMainInvokeEvent,
|
||||||
@ -10,15 +12,20 @@ const openGame = async (
|
|||||||
executablePath: string,
|
executablePath: string,
|
||||||
launchOptions: string | null
|
launchOptions: string | null
|
||||||
) => {
|
) => {
|
||||||
// TODO: revisit this for launchOptions
|
|
||||||
const parsedPath = parseExecutablePath(executablePath);
|
const parsedPath = parseExecutablePath(executablePath);
|
||||||
|
const parsedParams = parseLaunchOptions(launchOptions);
|
||||||
|
|
||||||
await gameRepository.update(
|
await gameRepository.update(
|
||||||
{ id: gameId },
|
{ id: gameId },
|
||||||
{ executablePath: parsedPath, launchOptions }
|
{ executablePath: parsedPath, launchOptions }
|
||||||
);
|
);
|
||||||
|
|
||||||
shell.openPath(parsedPath);
|
if (parsedParams.length === 0) {
|
||||||
|
shell.openPath(parsedPath);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
spawn(parsedPath, parsedParams, { shell: false, detached: true });
|
||||||
};
|
};
|
||||||
|
|
||||||
registerEvent("openGame", openGame);
|
registerEvent("openGame", openGame);
|
||||||
|
@ -169,8 +169,6 @@ export function GameOptionsModal({
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const shouldShowLaunchOptionsConfiguration = false;
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<DeleteGameModal
|
<DeleteGameModal
|
||||||
@ -285,27 +283,28 @@ export function GameOptionsModal({
|
|||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{shouldShowLaunchOptionsConfiguration && (
|
<div className={styles.optionsContainer}>
|
||||||
<div className={styles.gameOptionHeader}>
|
<div className={styles.gameOptionHeader}>
|
||||||
<h2>{t("launch_options")}</h2>
|
<h2>{t("launch_options")}</h2>
|
||||||
<h4 className={styles.gameOptionHeaderDescription}>
|
<h4 className={styles.gameOptionHeaderDescription}>
|
||||||
{t("launch_options_description")}
|
{t("launch_options_description")}
|
||||||
</h4>
|
</h4>
|
||||||
<TextField
|
|
||||||
value={launchOptions}
|
|
||||||
theme="dark"
|
|
||||||
placeholder={t("launch_options_placeholder")}
|
|
||||||
onChange={handleChangeLaunchOptions}
|
|
||||||
rightContent={
|
|
||||||
game.launchOptions && (
|
|
||||||
<Button onClick={handleClearLaunchOptions} theme="outline">
|
|
||||||
{t("clear")}
|
|
||||||
</Button>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
)}
|
|
||||||
|
<TextField
|
||||||
|
value={launchOptions}
|
||||||
|
theme="dark"
|
||||||
|
placeholder={t("launch_options_placeholder")}
|
||||||
|
onChange={handleChangeLaunchOptions}
|
||||||
|
rightContent={
|
||||||
|
game.launchOptions && (
|
||||||
|
<Button onClick={handleClearLaunchOptions} theme="outline">
|
||||||
|
{t("clear")}
|
||||||
|
</Button>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div className={styles.gameOptionHeader}>
|
<div className={styles.gameOptionHeader}>
|
||||||
<h2>{t("downloads_secion_title")}</h2>
|
<h2>{t("downloads_secion_title")}</h2>
|
||||||
|
Loading…
Reference in New Issue
Block a user