You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
117 lines
3.5 KiB
JavaScript
117 lines
3.5 KiB
JavaScript
// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
var UE_JavaScriptLibary =
|
|
{
|
|
UE_SendAndRecievePayLoad: function (url, indata, insize, outdataptr, outsizeptr) {
|
|
var _url = Pointer_stringify(url)
|
|
|
|
var request = new XMLHttpRequest();
|
|
if (insize && indata) {
|
|
var postData = Module.HEAP8.subarray(indata, indata + insize);
|
|
request.open('POST', _url, false);
|
|
request.overrideMimeType('text\/plain; charset=x-user-defined');
|
|
request.send(postData);
|
|
} else {
|
|
request.open('GET', _url, false);
|
|
request.send();
|
|
}
|
|
|
|
if (request.status != 200) {
|
|
console.log("Fetching " + _url + " failed: " + request.responseText);
|
|
|
|
Module.HEAP32[outsizeptr >> 2] = 0;
|
|
Module.HEAP32[outdataptr >> 2] = 0;
|
|
|
|
return;
|
|
}
|
|
|
|
// we got the XHR result as a string. We need to write this to Module.HEAP8[outdataptr]
|
|
var replyString = request.responseText;
|
|
var replyLength = replyString.length;
|
|
|
|
var outdata = Module._malloc(replyLength);
|
|
if (!outdata) {
|
|
console.log("Failed to allocate " + replyLength + " bytes in heap for reply");
|
|
|
|
Module.HEAP32[outsizeptr >> 2] = 0;
|
|
Module.HEAP32[outdataptr >> 2] = 0;
|
|
|
|
return;
|
|
}
|
|
|
|
// tears and crying. Copy from the result-string into the heap.
|
|
var replyDest = Module.HEAP8.subarray(outdata, outdata + replyLength);
|
|
for (var i = 0; i < replyLength; ++i) {
|
|
replyDest[i] = replyString.charCodeAt(i) & 0xff;
|
|
}
|
|
|
|
Module.HEAP32[outsizeptr >> 2] = replyLength;
|
|
Module.HEAP32[outdataptr >> 2] = outdata;
|
|
},
|
|
|
|
|
|
UE_SaveGame: function (name, userIndex, indata, insize){
|
|
// user index is not used.
|
|
var _name = Pointer_stringify(name);
|
|
var gamedata = Module.HEAP8.subarray(indata, indata + insize);
|
|
// local storage only takes strings, we need to convert string to base64 before storing.
|
|
var b64encoded = base64EncArr(gamedata);
|
|
$.jStorage.set(_name, b64encoded);
|
|
return true;
|
|
},
|
|
|
|
|
|
UE_LoadGame: function (name, userIndex, outdataptr, outsizeptr){
|
|
var _name = Pointer_stringify(name);
|
|
// local storage only takes strings, we need to convert string to base64 before storing.
|
|
var b64encoded = $.jStorage.get(_name);
|
|
if (typeof b64encoded == null)
|
|
return false;
|
|
var decodedArray = base64DecToArr(b64encoded);
|
|
// copy back the decoded array.
|
|
var outdata = Module._malloc(decodedArray.length);
|
|
// view the allocated data as a HEAP8.
|
|
var dest = Module.HEAP8.subarray(outdata, outdata + decodedArray.length);
|
|
// copy back.
|
|
for (var i = 0; i < decodedArray.length; ++i) {
|
|
dest[i] = decodedArray[i];
|
|
}
|
|
Module.HEAP32[outsizeptr >> 2] = decodedArray.length;
|
|
Module.HEAP32[outdataptr >> 2] = outdata;
|
|
return true;
|
|
},
|
|
|
|
UE_DoesSaveGameExist: function (name, userIndex){
|
|
var _name = Pointer_stringify(name);
|
|
var b64encoded = $.jStorage.get(_name);
|
|
if (b64encoded == null)
|
|
return false;
|
|
return true;
|
|
},
|
|
|
|
UE_MessageBox: function (type, message, caption ) {
|
|
// type maps to EAppMsgType::Type
|
|
if ( type == 0 ){
|
|
var text = Pointer_stringify(message);
|
|
if (!confirm(text))
|
|
return 0;
|
|
} else {
|
|
var text = Pointer_stringify(message);
|
|
alert(text);
|
|
}
|
|
return 1;
|
|
},
|
|
|
|
UE_GetCurrentCultureName: function (address, outsize) {
|
|
var culture_name = navigator.language || navigator.browserLanguage;
|
|
if (culture_name.lenght >= outsize) {
|
|
return 0;
|
|
}
|
|
Module.writeAsciiToMemory(culture_name, address);
|
|
return 1;
|
|
}
|
|
};
|
|
|
|
mergeInto(LibraryManager.library, UE_JavaScriptLibary);
|