aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/app/main.js23
-rw-r--r--src/index.js22
-rw-r--r--src/lang/en.json1
-rw-r--r--src/lang/fr.json1
-rw-r--r--src/utils.js7
5 files changed, 46 insertions, 8 deletions
diff --git a/src/app/main.js b/src/app/main.js
index 6f2493a..a5c0a37 100644
--- a/src/app/main.js
+++ b/src/app/main.js
@@ -20,14 +20,28 @@ ipcRenderer.send("setlang", settings.lang);
if (fs.existsSync("viper.json")) {
settings = {...settings, ...JSON.parse(fs.readFileSync("viper.json", "utf8"))};
settings.zip = path.join(settings.gamepath + "/northstar.zip");
+
+ if (settings.gamepath.length === 0) {
+ alert(lang("general.missingpath"));
+ setpath(false);
+ } else {
+ setpath(true);
+ }
} else {
- alert(lang("general.missinggamepath"));
+ alert(lang("general.missingpath"));
setpath();
}
function exit() {ipcRenderer.send("exit")}
function update() {ipcRenderer.send("update")}
-function setpath() {ipcRenderer.send("setpath")}
+
+/**
+ * Reports to the main thread about game path status.
+ * @param {boolean} value is game path loaded
+ */
+function setpath(value = false) {
+ ipcRenderer.send("setpath", value);
+}
function launch() {ipcRenderer.send("launch")}
function launchVanilla() {ipcRenderer.send("launchVanilla")}
@@ -145,6 +159,11 @@ ipcRenderer.on("updateavailable", () => {
}
})
+ipcRenderer.on("nopathselected", () => {
+ alert(lang("gui.gamepath.must"));
+ exit();
+});
+
setlang();
setInterval(() => {
ipcRenderer.send("setsize", document.querySelector(".lines").offsetHeight + 20);
diff --git a/src/index.js b/src/index.js
index a723622..1a9f660 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,7 +1,7 @@
const fs = require("fs");
const path = require("path");
const { autoUpdater } = require("electron-updater");
-const { app, dialog, ipcMain, BrowserWindow, ipcRenderer } = require("electron");
+const { app, ipcMain, BrowserWindow } = require("electron");
const Emitter = require("events");
const events = new Emitter();
@@ -31,12 +31,8 @@ function start() {
win.loadFile(__dirname + "/app/index.html");
ipcMain.on("exit", () => {process.exit(0)})
- ipcMain.on("setpath", () => {utils.setpath(win)})
ipcMain.on("setsize", (event, height) => {
win.setSize(width, height);
- if (! win.isVisible()) {
- win.show();
- }
})
ipcMain.on("ns-updated", () => {win.webContents.send("ns-updated")})
@@ -74,6 +70,22 @@ ipcMain.on("launchVanilla", (event) => {utils.launch("vanilla")})
ipcMain.on("update", (event) => {utils.update()})
ipcMain.on("setpathcli", (event) => {utils.setpath()});
+ipcMain.on("setpath", (event, value) => {
+ if (!value) {
+ utils.setpath(win)
+ } else if (!win.isVisible()) {
+ win.show();
+ }
+});
+ipcMain.on("newpath", (event, newpath) => {
+ if (newpath === false && !win.isVisible()) {
+ win.webContents.send("nopathselected");
+ } else {
+ if (!win.isVisible()) {
+ win.show();
+ }
+ }
+});
ipcMain.on("getversion", () => {
win.webContents.send("version", {
diff --git a/src/lang/en.json b/src/lang/en.json
index 401e98f..406ee79 100644
--- a/src/lang/en.json
+++ b/src/lang/en.json
@@ -54,6 +54,7 @@
"gui.launchnorthstar": "Northstar",
"gui.selectpath": "Please select the path!",
+ "gui.gamepath.must": "The game path must be set to start Viper.",
"general.launching": "Launching",
diff --git a/src/lang/fr.json b/src/lang/fr.json
index fe4d63c..870fbfe 100644
--- a/src/lang/fr.json
+++ b/src/lang/fr.json
@@ -36,6 +36,7 @@
"gui.launchnorthstar": "Northstar",
"gui.selectpath": "Veuillez sélectionner le dossier où se trouve le client Titanfall 2.",
+ "gui.gamepath.must": "Vous devez sélectionner le chemin du dossier du jeu Titanfall 2 pour pouvoir lancer Viper.",
"general.launching": "Lancement",
diff --git a/src/utils.js b/src/utils.js
index 5be9cfe..fc62f01 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -31,7 +31,7 @@ if (fs.existsSync("viper.json")) {
settings = {...settings, ...JSON.parse(fs.readFileSync("viper.json", "utf8"))};
settings.zip = path.join(settings.gamepath + "/northstar.zip");
} else {
- console.log(lang("general.missinggamepath"));
+ console.log(lang("general.missingpath"));
}
function setpath(win) {
@@ -39,10 +39,15 @@ function setpath(win) {
settings.gamepath = cli.param("setpath");
} else {
dialog.showOpenDialog({properties: ["openDirectory"]}).then(res => {
+ if (res.canceled) {
+ ipcMain.emit("newpath", null, false);
+ return;
+ }
settings.gamepath = res.filePaths[0];
settings.zip = path.join(settings.gamepath + "/northstar.zip");
saveSettings();
win.webContents.send("newpath", settings.gamepath);
+ ipcMain.emit("newpath", null, settings.gamepath);
}).catch(err => {console.error(err)})
}