Fix multiplayer not working at all with old emscripten

This commit is contained in:
UnknownShadow200 2021-05-28 17:54:57 +10:00
parent 6e57334f9a
commit 5d93db81d2
3 changed files with 13 additions and 6 deletions

View File

@ -90,7 +90,7 @@ WEB_CC="/home/buildbot/emsdk/emscripten/1.38.31/emcc"
build_web() {
echo "Building web.."
rm cc.js
$WEB_CC *.c -O1 -o cc.js -s WASM=0 -s LEGACY_VM_SUPPORT=1 -s ALLOW_MEMORY_GROWTH=1 -s ABORTING_MALLOC=0 --preload-file texpacks/default.zip -w
$WEB_CC *.c -O1 -o cc.js --js-library interop_web.js -s WASM=0 -s LEGACY_VM_SUPPORT=1 -s ALLOW_MEMORY_GROWTH=1 -s ABORTING_MALLOC=0 --preload-file texpacks/default.zip -w
# so game loads textures from classicube.net/static/default.zip
sed -i 's#cc.data#/static/default.zip#g' cc.js
# fix mouse wheel scrolling page not being properly prevented

View File

@ -22,10 +22,17 @@
#include <sys/time.h>
#include <stdio.h>
/* Unfortunately, errno constants are different in some older emscripten versions */
/* (linux errno compared to WASI errno) */
/* So just use the same numbers as interop_web.js (otherwise connecting always fail) */
#define _EINPROGRESS 26
#define _EAGAIN 6 /* same as EWOULDBLOCK */
#define _EHOSTUNREACH 23
const cc_result ReturnCode_FileShareViolation = 1000000000; /* TODO: not used apparently */
const cc_result ReturnCode_FileNotFound = ENOENT;
const cc_result ReturnCode_SocketInProgess = EINPROGRESS;
const cc_result ReturnCode_SocketWouldBlock = EWOULDBLOCK;
const cc_result ReturnCode_SocketInProgess = _EINPROGRESS;
const cc_result ReturnCode_SocketWouldBlock = _EAGAIN;
const cc_result ReturnCode_DirectoryExists = EEXIST;
#include <emscripten.h>
#include "Chat.h"
@ -288,7 +295,7 @@ cc_result Socket_Connect(cc_socket s, const cc_string* ip, int port) {
res = -interop_SocketConnect(s, addr, port);
/* error returned when invalid address provided */
if (res == EHOSTUNREACH) return ERR_INVALID_ARGUMENT;
if (res == _EHOSTUNREACH) return ERR_INVALID_ARGUMENT;
return res;
}
@ -305,7 +312,7 @@ cc_result Socket_Read(cc_socket s, cc_uint8* data, cc_uint32 count, cc_uint32* m
data += res; count -= res;
} else {
/* EAGAIN when no data available */
if (res == -EAGAIN) break;
if (res == -_EAGAIN) break;
return -res;
}
}

View File

@ -125,7 +125,7 @@ mergeInto(LibraryManager.library, {
},
interop_InitSockets: function() {
window.SOCKETS = {
EBADF:-8,EISCONN:-30,ENOTCONN:-53,EAGAIN:-6,EWOULDBLOCK:-6,EHOSTUNREACH:-23,EINPROGRESS:-26,EALREADY:-7,ECONNRESET:-15,EINVAL:-28,ECONNREFUSED:-14,
EBADF:-8,EISCONN:-30,ENOTCONN:-53,EAGAIN:-6,EHOSTUNREACH:-23,EINPROGRESS:-26,EALREADY:-7,ECONNRESET:-15,EINVAL:-28,ECONNREFUSED:-14,
sockets: [],
createSocket:function() {