Add support for WebView 70+

This commit is contained in:
OleSTEEP 2024-03-04 00:40:22 +03:00
parent 4de74a3b6c
commit e0bb234102
12 changed files with 30944 additions and 27280 deletions

View file

@ -15,6 +15,7 @@
<body style="background-color: black; overflow: hidden;"> <body style="background-color: black; overflow: hidden;">
<script type="text/javascript" src="cordova.js"></script> <script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/porting/compat/corejs.js"></script>
<script type="text/javascript" src="js/porting/persistent.js"></script> <script type="text/javascript" src="js/porting/persistent.js"></script>
<script type="text/javascript" src="js/porting/jscontrols.js" async></script> <script type="text/javascript" src="js/porting/jscontrols.js" async></script>
<script type="text/javascript" src="js/libs/yaml.js"></script> <script type="text/javascript" src="js/libs/yaml.js"></script>

View file

@ -366,9 +366,6 @@ Gamefall.OmoriFixes = Gamefall.OmoriFixes || {};
if (!!this.hasSteamwork()) { if (!!this.hasSteamwork()) {
this.getAchievementsData(); this.getAchievementsData();
} }
if (!Utils.isOptionValid("test") && window.navigator.plugins.namedItem('Native Client') !== null) {
throw new Error("This game does not work in SDK mode.")
}
if (Utils.isMac()) { if (Utils.isMac()) {
const nw_window = window; const nw_window = window;
nw_window.on("restore", () => { nw_window.on("restore", () => {

View file

@ -301,8 +301,9 @@ document.addEventListener("deviceready", () => {
return false; return false;
} }
setSayGexValue(path, (v) => { v.exists = true; }, {exists: true, content: null}); var status = xhr.status === 200 || xhr.responseText !== "";
return xhr.status === 200 || xhr.status === 0; setSayGexValue(path, (v) => { v.exists = status; }, {exists: status, content: null});
return status;
} }
NativeFunctions.readSaveFileUTF8 = function(path) { NativeFunctions.readSaveFileUTF8 = function(path) {

View file

@ -512,7 +512,10 @@ VirtualGamepad.gamepad = {
//============================================================================= //=============================================================================
VirtualGamepad._originalNavigator = navigator.getGamepads; VirtualGamepad._originalNavigator = navigator.getGamepads;
VirtualGamepad.updateNavigator = function() { VirtualGamepad.updateNavigator = function() {
var gamepads = VirtualGamepad._originalNavigator.call(navigator); var gamepads = [];
for (gamepad of VirtualGamepad._originalNavigator.call(navigator)) {
gamepads.push(gamepad);
}
navigator.getGamepads = function() { navigator.getGamepads = function() {
var index = ONSControls.options.gamepadIndex; var index = ONSControls.options.gamepadIndex;
gamepads[index] = VirtualGamepad.gamepad; gamepads[index] = VirtualGamepad.gamepad;
@ -570,28 +573,28 @@ ONSControls.configManager = function() {
//============================================================================= //=============================================================================
// * Class Variables // * Class Variables
//============================================================================= //=============================================================================
ConfigManager.ONSConfig ||= {}; ConfigManager.ONSConfig = (typeof x === 'undefined') ? {} : ConfigManager.ONSConfig;
ConfigManager.ONSConfig.customPos ||= false; ConfigManager.ONSConfig.customPos = (typeof x === 'undefined') ? false : ConfigManager.ONSConfig.customPos;
ConfigManager.ONSConfig.buttonsScale ||= ONSControls.options.buttonsScale; ConfigManager.ONSConfig.buttonsScale = (typeof x === 'undefined') ? ONSControls.options.buttonsScale : ConfigManager.ONSConfig.buttonsScale;
ConfigManager.ONSConfig.buttonsOpacity ||= ONSControls.options.buttonsOpacity; ConfigManager.ONSConfig.buttonsOpacity = (typeof x === 'undefined') ? ONSControls.options.buttonsOpacity : ConfigManager.ONSConfig.buttonsOpacity;
ConfigManager.ONSConfig.safeArea ||= 1; ConfigManager.ONSConfig.safeArea = (typeof x === 'undefined') ? 1 : ConfigManager.ONSConfig.safeArea;
ConfigManager.ONSConfig.buttonsSize ||= ONSControls._controlsCanvas.vh(0.18) * ConfigManager.ONSConfig.buttonsScale; ConfigManager.ONSConfig.buttonsSize = (typeof x === 'undefined') ? ONSControls._controlsCanvas.vh(0.18) * ConfigManager.ONSConfig.buttonsScale : ConfigManager.ONSConfig.buttonsSize;
ConfigManager.ONSConfig.buttonsX ||= ONSControls._controlsCanvas.screen.width - ConfigManager.ONSConfig.buttonsSize; ConfigManager.ONSConfig.buttonsX = (typeof x === 'undefined') ? ONSControls._controlsCanvas.screen.width - ConfigManager.ONSConfig.buttonsSize : ConfigManager.ONSConfig.buttonsX;
ConfigManager.ONSConfig.buttonsY ||= ONSControls._controlsCanvas.screen.height - ConfigManager.ONSConfig.buttonsSize; ConfigManager.ONSConfig.buttonsY = (typeof x === 'undefined') ? ONSControls._controlsCanvas.screen.height - ConfigManager.ONSConfig.buttonsSize : ConfigManager.ONSConfig.buttonsY;
ConfigManager.ONSConfig.dPadSize ||= ONSControls._controlsCanvas.vh(0.36) * ConfigManager.ONSConfig.buttonsScale; ConfigManager.ONSConfig.dPadSize = (typeof x === 'undefined') ? ONSControls._controlsCanvas.vh(0.36) * ConfigManager.ONSConfig.buttonsScale : ConfigManager.ONSConfig.dPadSize;
ConfigManager.ONSConfig.dPadX ||= ConfigManager.ONSConfig.dPadSize / 2; ConfigManager.ONSConfig.dPadX = (typeof x === 'undefined') ? ConfigManager.ONSConfig.dPadSize / 2 : ConfigManager.ONSConfig.dPadX;
ConfigManager.ONSConfig.dPadY ||= ONSControls._controlsCanvas.screen.height - ConfigManager.ONSConfig.dPadSize / 2; ConfigManager.ONSConfig.dPadY = (typeof x === 'undefined') ? ONSControls._controlsCanvas.screen.height - ConfigManager.ONSConfig.dPadSize / 2 : ConfigManager.ONSConfig.dPadY;
ConfigManager.ONSConfig.bumpersOffsetX ||= 16; ConfigManager.ONSConfig.bumpersOffsetX = (typeof x === 'undefined') ? 16 : ConfigManager.ONSConfig.bumpersOffsetX;
ConfigManager.ONSConfig.bumpersOffsetY ||= ONSControls._controlsCanvas.vh(0.30); ConfigManager.ONSConfig.bumpersOffsetY = (typeof x === 'undefined') ? ONSControls._controlsCanvas.vh(0.30) : ConfigManager.ONSConfig.bumpersOffsetY;
ConfigManager.ONSConfig.bumpersWidth ||= ONSControls._controlsCanvas.vh(0.188) * ConfigManager.ONSConfig.buttonsScale; ConfigManager.ONSConfig.bumpersWidth = (typeof x === 'undefined') ? ONSControls._controlsCanvas.vh(0.188) * ConfigManager.ONSConfig.buttonsScale : ConfigManager.ONSConfig.bumpersWidth;
ConfigManager.ONSConfig.bumpersHeight ||= ONSControls._controlsCanvas.vh(0.12) * ConfigManager.ONSConfig.buttonsScale; ConfigManager.ONSConfig.bumpersHeight = (typeof x === 'undefined') ? ONSControls._controlsCanvas.vh(0.12) * ConfigManager.ONSConfig.buttonsScale : ConfigManager.ONSConfig.bumpersHeight;
ConfigManager.ONSConfig.LBX ||= ConfigManager.ONSConfig.bumpersOffsetX + ConfigManager.ONSConfig.bumpersWidth / 2; ConfigManager.ONSConfig.LBX = (typeof x === 'undefined') ? ConfigManager.ONSConfig.bumpersOffsetX + ConfigManager.ONSConfig.bumpersWidth / 2 : ConfigManager.ONSConfig.LBX;
ConfigManager.ONSConfig.LBY ||= ConfigManager.ONSConfig.bumpersOffsetY + ConfigManager.ONSConfig.bumpersHeight / 2; ConfigManager.ONSConfig.LBY = (typeof x === 'undefined') ? ConfigManager.ONSConfig.bumpersOffsetY + ConfigManager.ONSConfig.bumpersHeight / 2 : ConfigManager.ONSConfig.LBY;
ConfigManager.ONSConfig.RBX ||= ConfigManager.ONSConfig.bumpersOffsetX + ConfigManager.ONSConfig.bumpersWidth / 2; ConfigManager.ONSConfig.RBX = (typeof x === 'undefined') ? ConfigManager.ONSConfig.bumpersOffsetX + ConfigManager.ONSConfig.bumpersWidth / 2 : ConfigManager.ONSConfig.RBX;
ConfigManager.ONSConfig.RBY ||= ConfigManager.ONSConfig.bumpersOffsetY + ConfigManager.ONSConfig.bumpersHeight / 2; ConfigManager.ONSConfig.RBY = (typeof x === 'undefined') ? ConfigManager.ONSConfig.bumpersOffsetY + ConfigManager.ONSConfig.bumpersHeight / 2 : ConfigManager.ONSConfig.RBY;
ConfigManager.ONSConfig.additonalSize ||= ONSControls._controlsCanvas.vh(0.06) * ConfigManager.ONSConfig.buttonsScale; ConfigManager.ONSConfig.additonalSize = (typeof x === 'undefined') ? ONSControls._controlsCanvas.vh(0.06) * ConfigManager.ONSConfig.buttonsScale : ConfigManager.ONSConfig.additonalSize;
ConfigManager.ONSConfig.showX ||= ONSControls._controlsCanvas.screen.width - ConfigManager.ONSConfig.additonalSize / 2; ConfigManager.ONSConfig.showX = (typeof x === 'undefined') ? ONSControls._controlsCanvas.screen.width - ConfigManager.ONSConfig.additonalSize / 2 : ConfigManager.ONSConfig.showX;
ConfigManager.ONSConfig.showY ||= ONSControls._controlsCanvas.screen.height - ConfigManager.ONSConfig.additonalSize / 2; ConfigManager.ONSConfig.showY = (typeof x === 'undefined') ? ONSControls._controlsCanvas.screen.height - ConfigManager.ONSConfig.additonalSize / 2 : ConfigManager.ONSConfig.showY;
//============================================================================= //=============================================================================
// * Restore defaults // * Restore defaults
//============================================================================= //=============================================================================

File diff suppressed because it is too large Load diff

View file

@ -2,26 +2,6 @@
window._MEMO_PATHS = {} window._MEMO_PATHS = {}
/**
* String.prototype.replaceAll() polyfill
* https://gomakethings.com/how-to-replace-a-section-of-a-string-with-another-one-with-vanilla-js/
* @author Chris Ferdinandi
* @license MIT
*/
if (!String.prototype.replaceAll) {
String.prototype.replaceAll = function(str, newStr){
// If a regex pattern
if (Object.prototype.toString.call(str).toLowerCase() === '[object regexp]') {
return this.replace(str, newStr);
}
// If a string
return this.replace(new RegExp(str, 'g'), newStr);
};
}
function replaceSpecialSymbols(s) { function replaceSpecialSymbols(s) {
const memoized = _MEMO_PATHS[s]; const memoized = _MEMO_PATHS[s];
if (memoized != undefined) { if (memoized != undefined) {
@ -439,7 +419,7 @@ require.libs.fs = {
} }
throw e; throw e;
} }
return xhr.status === 200 || xhr.status === 0; return xhr.status === 200 || xhr.responseText !== "";
}, },
unlinkSync: function () { unlinkSync: function () {

View file

@ -15,6 +15,7 @@
<body style="background-color: black; overflow: hidden;"> <body style="background-color: black; overflow: hidden;">
<script type="text/javascript" src="cordova.js"></script> <script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/porting/compat/corejs.js"></script>
<script type="text/javascript" src="js/porting/persistent.js"></script> <script type="text/javascript" src="js/porting/persistent.js"></script>
<script type="text/javascript" src="js/porting/jscontrols.js" async></script> <script type="text/javascript" src="js/porting/jscontrols.js" async></script>
<script type="text/javascript" src="js/libs/yaml.js"></script> <script type="text/javascript" src="js/libs/yaml.js"></script>

View file

@ -366,9 +366,6 @@ Gamefall.OmoriFixes = Gamefall.OmoriFixes || {};
if (!!this.hasSteamwork()) { if (!!this.hasSteamwork()) {
this.getAchievementsData(); this.getAchievementsData();
} }
if (!Utils.isOptionValid("test") && window.navigator.plugins.namedItem('Native Client') !== null) {
throw new Error("This game does not work in SDK mode.")
}
if (Utils.isMac()) { if (Utils.isMac()) {
const nw_window = window; const nw_window = window;
nw_window.on("restore", () => { nw_window.on("restore", () => {

View file

@ -304,8 +304,9 @@ document.addEventListener("deviceready", () => {
return false; return false;
} }
setSayGexValue(path, (v) => { v.exists = true; }, {exists: true, content: null}); var status = xhr.status === 200 || xhr.responseText !== "";
return xhr.status === 200 || xhr.status === 0; setSayGexValue(path, (v) => { v.exists = status; }, {exists: status, content: null});
return status;
} }
NativeFunctions.readSaveFileUTF8 = function(path) { NativeFunctions.readSaveFileUTF8 = function(path) {

View file

@ -512,7 +512,10 @@ VirtualGamepad.gamepad = {
//============================================================================= //=============================================================================
VirtualGamepad._originalNavigator = navigator.getGamepads; VirtualGamepad._originalNavigator = navigator.getGamepads;
VirtualGamepad.updateNavigator = function() { VirtualGamepad.updateNavigator = function() {
var gamepads = VirtualGamepad._originalNavigator.call(navigator); var gamepads = [];
for (gamepad of VirtualGamepad._originalNavigator.call(navigator)) {
gamepads.push(gamepad);
}
navigator.getGamepads = function() { navigator.getGamepads = function() {
var index = ONSControls.options.gamepadIndex; var index = ONSControls.options.gamepadIndex;
gamepads[index] = VirtualGamepad.gamepad; gamepads[index] = VirtualGamepad.gamepad;
@ -570,28 +573,28 @@ ONSControls.configManager = function() {
//============================================================================= //=============================================================================
// * Class Variables // * Class Variables
//============================================================================= //=============================================================================
ConfigManager.ONSConfig ||= {}; ConfigManager.ONSConfig = (typeof x === 'undefined') ? {} : ConfigManager.ONSConfig;
ConfigManager.ONSConfig.customPos ||= false; ConfigManager.ONSConfig.customPos = (typeof x === 'undefined') ? false : ConfigManager.ONSConfig.customPos;
ConfigManager.ONSConfig.buttonsScale ||= ONSControls.options.buttonsScale; ConfigManager.ONSConfig.buttonsScale = (typeof x === 'undefined') ? ONSControls.options.buttonsScale : ConfigManager.ONSConfig.buttonsScale;
ConfigManager.ONSConfig.buttonsOpacity ||= ONSControls.options.buttonsOpacity; ConfigManager.ONSConfig.buttonsOpacity = (typeof x === 'undefined') ? ONSControls.options.buttonsOpacity : ConfigManager.ONSConfig.buttonsOpacity;
ConfigManager.ONSConfig.safeArea ||= 1; ConfigManager.ONSConfig.safeArea = (typeof x === 'undefined') ? 1 : ConfigManager.ONSConfig.safeArea;
ConfigManager.ONSConfig.buttonsSize ||= ONSControls._controlsCanvas.vh(0.18) * ConfigManager.ONSConfig.buttonsScale; ConfigManager.ONSConfig.buttonsSize = (typeof x === 'undefined') ? ONSControls._controlsCanvas.vh(0.18) * ConfigManager.ONSConfig.buttonsScale : ConfigManager.ONSConfig.buttonsSize;
ConfigManager.ONSConfig.buttonsX ||= ONSControls._controlsCanvas.screen.width - ConfigManager.ONSConfig.buttonsSize; ConfigManager.ONSConfig.buttonsX = (typeof x === 'undefined') ? ONSControls._controlsCanvas.screen.width - ConfigManager.ONSConfig.buttonsSize : ConfigManager.ONSConfig.buttonsX;
ConfigManager.ONSConfig.buttonsY ||= ONSControls._controlsCanvas.screen.height - ConfigManager.ONSConfig.buttonsSize; ConfigManager.ONSConfig.buttonsY = (typeof x === 'undefined') ? ONSControls._controlsCanvas.screen.height - ConfigManager.ONSConfig.buttonsSize : ConfigManager.ONSConfig.buttonsY;
ConfigManager.ONSConfig.dPadSize ||= ONSControls._controlsCanvas.vh(0.36) * ConfigManager.ONSConfig.buttonsScale; ConfigManager.ONSConfig.dPadSize = (typeof x === 'undefined') ? ONSControls._controlsCanvas.vh(0.36) * ConfigManager.ONSConfig.buttonsScale : ConfigManager.ONSConfig.dPadSize;
ConfigManager.ONSConfig.dPadX ||= ConfigManager.ONSConfig.dPadSize / 2; ConfigManager.ONSConfig.dPadX = (typeof x === 'undefined') ? ConfigManager.ONSConfig.dPadSize / 2 : ConfigManager.ONSConfig.dPadX;
ConfigManager.ONSConfig.dPadY ||= ONSControls._controlsCanvas.screen.height - ConfigManager.ONSConfig.dPadSize / 2; ConfigManager.ONSConfig.dPadY = (typeof x === 'undefined') ? ONSControls._controlsCanvas.screen.height - ConfigManager.ONSConfig.dPadSize / 2 : ConfigManager.ONSConfig.dPadY;
ConfigManager.ONSConfig.bumpersOffsetX ||= 16; ConfigManager.ONSConfig.bumpersOffsetX = (typeof x === 'undefined') ? 16 : ConfigManager.ONSConfig.bumpersOffsetX;
ConfigManager.ONSConfig.bumpersOffsetY ||= ONSControls._controlsCanvas.vh(0.30); ConfigManager.ONSConfig.bumpersOffsetY = (typeof x === 'undefined') ? ONSControls._controlsCanvas.vh(0.30) : ConfigManager.ONSConfig.bumpersOffsetY;
ConfigManager.ONSConfig.bumpersWidth ||= ONSControls._controlsCanvas.vh(0.188) * ConfigManager.ONSConfig.buttonsScale; ConfigManager.ONSConfig.bumpersWidth = (typeof x === 'undefined') ? ONSControls._controlsCanvas.vh(0.188) * ConfigManager.ONSConfig.buttonsScale : ConfigManager.ONSConfig.bumpersWidth;
ConfigManager.ONSConfig.bumpersHeight ||= ONSControls._controlsCanvas.vh(0.12) * ConfigManager.ONSConfig.buttonsScale; ConfigManager.ONSConfig.bumpersHeight = (typeof x === 'undefined') ? ONSControls._controlsCanvas.vh(0.12) * ConfigManager.ONSConfig.buttonsScale : ConfigManager.ONSConfig.bumpersHeight;
ConfigManager.ONSConfig.LBX ||= ConfigManager.ONSConfig.bumpersOffsetX + ConfigManager.ONSConfig.bumpersWidth / 2; ConfigManager.ONSConfig.LBX = (typeof x === 'undefined') ? ConfigManager.ONSConfig.bumpersOffsetX + ConfigManager.ONSConfig.bumpersWidth / 2 : ConfigManager.ONSConfig.LBX;
ConfigManager.ONSConfig.LBY ||= ConfigManager.ONSConfig.bumpersOffsetY + ConfigManager.ONSConfig.bumpersHeight / 2; ConfigManager.ONSConfig.LBY = (typeof x === 'undefined') ? ConfigManager.ONSConfig.bumpersOffsetY + ConfigManager.ONSConfig.bumpersHeight / 2 : ConfigManager.ONSConfig.LBY;
ConfigManager.ONSConfig.RBX ||= ConfigManager.ONSConfig.bumpersOffsetX + ConfigManager.ONSConfig.bumpersWidth / 2; ConfigManager.ONSConfig.RBX = (typeof x === 'undefined') ? ConfigManager.ONSConfig.bumpersOffsetX + ConfigManager.ONSConfig.bumpersWidth / 2 : ConfigManager.ONSConfig.RBX;
ConfigManager.ONSConfig.RBY ||= ConfigManager.ONSConfig.bumpersOffsetY + ConfigManager.ONSConfig.bumpersHeight / 2; ConfigManager.ONSConfig.RBY = (typeof x === 'undefined') ? ConfigManager.ONSConfig.bumpersOffsetY + ConfigManager.ONSConfig.bumpersHeight / 2 : ConfigManager.ONSConfig.RBY;
ConfigManager.ONSConfig.additonalSize ||= ONSControls._controlsCanvas.vh(0.06) * ConfigManager.ONSConfig.buttonsScale; ConfigManager.ONSConfig.additonalSize = (typeof x === 'undefined') ? ONSControls._controlsCanvas.vh(0.06) * ConfigManager.ONSConfig.buttonsScale : ConfigManager.ONSConfig.additonalSize;
ConfigManager.ONSConfig.showX ||= ONSControls._controlsCanvas.screen.width - ConfigManager.ONSConfig.additonalSize / 2; ConfigManager.ONSConfig.showX = (typeof x === 'undefined') ? ONSControls._controlsCanvas.screen.width - ConfigManager.ONSConfig.additonalSize / 2 : ConfigManager.ONSConfig.showX;
ConfigManager.ONSConfig.showY ||= ONSControls._controlsCanvas.screen.height - ConfigManager.ONSConfig.additonalSize / 2; ConfigManager.ONSConfig.showY = (typeof x === 'undefined') ? ONSControls._controlsCanvas.screen.height - ConfigManager.ONSConfig.additonalSize / 2 : ConfigManager.ONSConfig.showY;
//============================================================================= //=============================================================================
// * Restore defaults // * Restore defaults
//============================================================================= //=============================================================================

File diff suppressed because it is too large Load diff

View file

@ -2,26 +2,6 @@
window._MEMO_PATHS = {} window._MEMO_PATHS = {}
/**
* String.prototype.replaceAll() polyfill
* https://gomakethings.com/how-to-replace-a-section-of-a-string-with-another-one-with-vanilla-js/
* @author Chris Ferdinandi
* @license MIT
*/
if (!String.prototype.replaceAll) {
String.prototype.replaceAll = function(str, newStr){
// If a regex pattern
if (Object.prototype.toString.call(str).toLowerCase() === '[object regexp]') {
return this.replace(str, newStr);
}
// If a string
return this.replace(new RegExp(str, 'g'), newStr);
};
}
function replaceSpecialSymbols(s) { function replaceSpecialSymbols(s) {
const memoized = _MEMO_PATHS[s]; const memoized = _MEMO_PATHS[s];
if (memoized != undefined) { if (memoized != undefined) {
@ -439,7 +419,7 @@ require.libs.fs = {
} }
throw e; throw e;
} }
return xhr.status === 200 || xhr.status === 0; return xhr.status === 200 || xhr.responseText !== "";
}, },
unlinkSync: function () { unlinkSync: function () {