mirror of
https://github.com/EmulatorJS/EmulatorJS.git
synced 2024-09-20 02:46:23 +00:00
Added pointer capture menu item
This commit is contained in:
parent
e4f7b2a9be
commit
c5c84751f0
2 changed files with 30 additions and 11 deletions
|
@ -22,6 +22,7 @@ class EJS_GameManager {
|
|||
saveSaveFiles: this.Module.cwrap('cmd_savefiles', '', []),
|
||||
supportsStates: this.Module.cwrap('supports_states', 'number', []),
|
||||
loadSaveFiles: this.Module.cwrap('refresh_save_files', 'null', []),
|
||||
togglePointerCapture: this.Module.cwrap('toggle_capturepointer', 'null', ['number']),
|
||||
toggleFastForward: this.Module.cwrap('toggle_fastforward', 'null', ['number']),
|
||||
setFastForwardRatio: this.Module.cwrap('set_ff_ratio', 'null', ['number']),
|
||||
toggleRewind: this.Module.cwrap('toggle_rewind', 'null', ['number']),
|
||||
|
@ -351,6 +352,9 @@ class EJS_GameManager {
|
|||
this.clearEJSResetTimer();
|
||||
this.functions.loadSaveFiles();
|
||||
}
|
||||
togglePointerCapture(active) {
|
||||
this.functions.togglePointerCapture(active);
|
||||
}
|
||||
setFastForwardRatio(ratio) {
|
||||
this.functions.setFastForwardRatio(ratio);
|
||||
}
|
||||
|
|
|
@ -277,6 +277,11 @@ class EmulatorJS {
|
|||
this.settingsLanguage = window.EJS_settingsLanguage || false;
|
||||
this.config = config;
|
||||
this.currentPopup = null;
|
||||
if (window.EJS_CapturePointer !== undefined) {
|
||||
this.isPointerCapture = window.EJS_CapturePointer;
|
||||
} else {
|
||||
this.isPointerCapture = false;
|
||||
}
|
||||
this.isFastForward = false;
|
||||
this.isSlowMotion = false;
|
||||
this.rewindEnabled = this.loadRewindEnabled();
|
||||
|
@ -1703,13 +1708,10 @@ class EmulatorJS {
|
|||
}
|
||||
this.gameManager.toggleMainLoop(this.paused ? 0 : 1);
|
||||
|
||||
//I now realize its not easy to pause it while the cursor is locked, just in case I guess
|
||||
if (this.getCore(true) === "nds") {
|
||||
if (this.canvas.exitPointerLock) {
|
||||
this.canvas.exitPointerLock();
|
||||
} else if (this.canvas.mozExitPointerLock) {
|
||||
this.canvas.mozExitPointerLock();
|
||||
}
|
||||
if (this.canvas.exitPointerLock) {
|
||||
this.canvas.exitPointerLock();
|
||||
} else if (this.canvas.mozExitPointerLock) {
|
||||
this.canvas.mozExitPointerLock();
|
||||
}
|
||||
}
|
||||
this.play = (dontUpdate) => {
|
||||
|
@ -1905,10 +1907,12 @@ class EmulatorJS {
|
|||
this.addEventListener(this.canvas, "click", (e) => {
|
||||
if (e.pointerType === "touch") return;
|
||||
if (!this.paused) {
|
||||
if (this.canvas.requestPointerLock) {
|
||||
this.canvas.requestPointerLock();
|
||||
} else if (this.canvas.mozRequestPointerLock) {
|
||||
this.canvas.mozRequestPointerLock();
|
||||
if (this.isPointerCapture === true) {
|
||||
if (this.canvas.requestPointerLock) {
|
||||
this.canvas.requestPointerLock();
|
||||
} else if (this.canvas.mozRequestPointerLock) {
|
||||
this.canvas.mozRequestPointerLock();
|
||||
}
|
||||
}
|
||||
this.menu.close();
|
||||
}
|
||||
|
@ -3902,6 +3906,12 @@ class EmulatorJS {
|
|||
if (this.rewindEnabled) {
|
||||
this.gameManager.setRewindGranularity(parseInt(value));
|
||||
}
|
||||
} else if (option === "capturepointer") {
|
||||
if (value === "enabled") {
|
||||
this.isPointerCapture = true;
|
||||
} else {
|
||||
this.isPointerCapture = false;
|
||||
}
|
||||
}
|
||||
this.gameManager.setVariable(option, value);
|
||||
this.saveSettings();
|
||||
|
@ -4078,6 +4088,11 @@ class EmulatorJS {
|
|||
}, 'disabled');
|
||||
}
|
||||
|
||||
addToMenu(this.localization('Capture Pointer'), 'capturepointer', {
|
||||
'enabled': this.localization("Enabled"),
|
||||
'disabled': this.localization("Disabled")
|
||||
}, "disabled");
|
||||
|
||||
addToMenu(this.localization('FPS'), 'fps', {
|
||||
'show': this.localization("show"),
|
||||
'hide': this.localization("hide")
|
||||
|
|
Loading…
Reference in a new issue