mirror of
https://github.com/d07RiV/diabloweb.git
synced 2026-06-03 21:41:38 +00:00
add version number
This commit is contained in:
@@ -77,6 +77,7 @@ function getClientEnvironment(publicUrl) {
|
|||||||
// This should only be used as an escape hatch. Normally you would put
|
// This should only be used as an escape hatch. Normally you would put
|
||||||
// images into the `src` and `import` them in code to get their paths.
|
// images into the `src` and `import` them in code to get their paths.
|
||||||
PUBLIC_URL: publicUrl,
|
PUBLIC_URL: publicUrl,
|
||||||
|
VERSION: JSON.stringify(process.env.npm_package_version),
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
// Stringify all values so we can feed into Webpack DefinePlugin
|
// Stringify all values so we can feed into Webpack DefinePlugin
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ module.exports = function(webpackEnv) {
|
|||||||
// initialization, it doesn't blow up the WebpackDevServer client, and
|
// initialization, it doesn't blow up the WebpackDevServer client, and
|
||||||
// changing JS code would still trigger a refresh.
|
// changing JS code would still trigger a refresh.
|
||||||
].filter(Boolean),
|
].filter(Boolean),
|
||||||
storage: paths.appStorageJs,
|
...(isEnvProduction ? {storage: paths.appStorageJs} : {}),
|
||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
// The build folder.
|
// The build folder.
|
||||||
|
|||||||
2
package-lock.json
generated
2
package-lock.json
generated
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "diabloweb",
|
"name": "diabloweb",
|
||||||
"version": "0.1.11",
|
"version": "1.0.1",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "diabloweb",
|
"name": "diabloweb",
|
||||||
"version": "0.1.11",
|
"version": "1.0.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/core": "7.4.3",
|
"@babel/core": "7.4.3",
|
||||||
@@ -63,7 +63,7 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node scripts/start.js",
|
"start": "node scripts/start.js",
|
||||||
"build": "node scripts/build.js",
|
"build": "npm version --no-git-tag-version && node scripts/build.js",
|
||||||
"test": "node scripts/test.js",
|
"test": "node scripts/test.js",
|
||||||
"deploy": "gh-pages -d build"
|
"deploy": "gh-pages -d build"
|
||||||
},
|
},
|
||||||
|
|||||||
17
src/App.js
17
src/App.js
@@ -6,6 +6,13 @@ import create_fs from './fs';
|
|||||||
import load_game from './api/loader';
|
import load_game from './api/loader';
|
||||||
import { SpawnSize } from './api/load_spawn';
|
import { SpawnSize } from './api/load_spawn';
|
||||||
|
|
||||||
|
function reportLink(e) {
|
||||||
|
const message = e.stack || e.message;
|
||||||
|
const url = new URL("https://github.com/d07RiV/diabloweb/issues/new");
|
||||||
|
url.searchParams.set("body", `**Error message:**\n\n${message.split("\n").map(line => " " + line).join("\n")}`);
|
||||||
|
return url.toString();
|
||||||
|
}
|
||||||
|
|
||||||
function isDropFile(e) {
|
function isDropFile(e) {
|
||||||
if (e.dataTransfer.items) {
|
if (e.dataTransfer.items) {
|
||||||
for (let i = 0; i < e.dataTransfer.items.length; ++i) {
|
for (let i = 0; i < e.dataTransfer.items.length; ++i) {
|
||||||
@@ -97,8 +104,8 @@ class App extends React.Component {
|
|||||||
this.setState(({dropping}) => ({dropping: Math.max(dropping + inc, 0)}));
|
this.setState(({dropping}) => ({dropping: Math.max(dropping + inc, 0)}));
|
||||||
}
|
}
|
||||||
|
|
||||||
onError(text) {
|
onError(message, stack) {
|
||||||
this.setState({error: text});
|
this.setState({error: {message, stack}});
|
||||||
}
|
}
|
||||||
|
|
||||||
openKeyboard(open) {
|
openKeyboard(open) {
|
||||||
@@ -194,7 +201,7 @@ class App extends React.Component {
|
|||||||
window.addEventListener('resize', this.onResize);
|
window.addEventListener('resize', this.onResize);
|
||||||
|
|
||||||
this.setState({started: true});
|
this.setState({started: true});
|
||||||
}, e => this.onError(e.message));
|
}, e => this.onError(e.message, e.stack));
|
||||||
}
|
}
|
||||||
|
|
||||||
pointerLocked() {
|
pointerLocked() {
|
||||||
@@ -493,9 +500,9 @@ class App extends React.Component {
|
|||||||
</div>
|
</div>
|
||||||
<div className="BodyV">
|
<div className="BodyV">
|
||||||
{!!error && (
|
{!!error && (
|
||||||
<Link className="error" href="https://github.com/d07RiV/diabloweb/issues">
|
<Link className="error" href={reportLink(error)}>
|
||||||
<p className="header">The following error has occurred:</p>
|
<p className="header">The following error has occurred:</p>
|
||||||
<p className="body">{error}</p>
|
<p className="body">{error.message}</p>
|
||||||
<p className="footer">Click to go to GitHub issues</p>
|
<p className="footer">Click to go to GitHub issues</p>
|
||||||
</Link>
|
</Link>
|
||||||
)}
|
)}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -183,7 +183,7 @@ function call_api(func, ...params) {
|
|||||||
audioTransfer = null;
|
audioTransfer = null;
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
worker.postMessage({action: "error", error: e.message});
|
worker.postMessage({action: "error", error: e.message, stack: e.stack});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -249,7 +249,10 @@ async function init_game(mpq, spawn, offscreen) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
progress("Initializing...");
|
progress("Initializing...");
|
||||||
wasm._DApi_Init(Math.floor(performance.now()), offscreen ? 1 : 0);
|
|
||||||
|
const vers = process.env.VERSION.match(/(\d+)\.(\d+)\.(\d+)/);
|
||||||
|
|
||||||
|
wasm._DApi_Init(Math.floor(performance.now()), offscreen ? 1 : 0, parseInt(vers[1]), parseInt(vers[2]), parseInt(vers[3]));
|
||||||
|
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
call_api("DApi_Render", Math.floor(performance.now()));
|
call_api("DApi_Render", Math.floor(performance.now()));
|
||||||
@@ -262,7 +265,7 @@ worker.addEventListener("message", ({data}) => {
|
|||||||
files = data.files;
|
files = data.files;
|
||||||
init_game(data.mpq, data.spawn, data.offscreen).then(
|
init_game(data.mpq, data.spawn, data.offscreen).then(
|
||||||
() => worker.postMessage({action: "loaded"}),
|
() => worker.postMessage({action: "loaded"}),
|
||||||
e => {debugger;worker.postMessage({action: "failed", error: e.message || e.name});});
|
e => worker.postMessage({action: "failed", error: e.message || e.name, stack: e.stack}));
|
||||||
break;
|
break;
|
||||||
case "event":
|
case "event":
|
||||||
call_api(data.func, ...data.params);
|
call_api(data.func, ...data.params);
|
||||||
|
|||||||
@@ -94,10 +94,10 @@ async function do_load_game(api, audio, mpq) {
|
|||||||
api.openKeyboard(data.open);
|
api.openKeyboard(data.open);
|
||||||
break;
|
break;
|
||||||
case "error":
|
case "error":
|
||||||
api.onError(data.error);
|
api.onError(data.error, data.stack);
|
||||||
break;
|
break;
|
||||||
case "failed":
|
case "failed":
|
||||||
reject(Error(data.error));
|
reject(Error(data.stack || data.error));
|
||||||
break;
|
break;
|
||||||
case "progress":
|
case "progress":
|
||||||
api.onProgress({text: data.text, loaded: data.loaded, total: data.total});
|
api.onProgress({text: data.text, loaded: data.loaded, total: data.total});
|
||||||
|
|||||||
Reference in New Issue
Block a user