diff --git a/engine/Makefile b/engine/Makefile index 2c8426a06..2dfc1c643 100644 --- a/engine/Makefile +++ b/engine/Makefile @@ -1727,7 +1727,7 @@ ifeq ($(FTE_TARGET),web) JSLIBS=--js-library web/ftejslib.js EMCC_CFLAGS= -DFTE_TARGET_WEB EMCC_LDFLAGS=$(EMCC_CFLAGS) $(JSLIBS) $(WEB_PREJS) - EMCC_CFLAGS+= -s BINARYEN_TRAP_MODE='clamp' #fix bigfloat->int rounding crashes +# EMCC_CFLAGS+= -s BINARYEN_TRAP_MODE='clamp' #fix bigfloat->int rounding crashes EMCC_CFLAGS+= -s LEGACY_GL_EMULATION=0 #simplify the opengl wrappers. EMCC_CFLAGS+= -s NO_FILESYSTEM=1 #we have our own. EMCC_LDFLAGS+=-s ERROR_ON_UNDEFINED_SYMBOLS=1 #fairly obvious. no runtime errors please. @@ -1736,8 +1736,8 @@ ifeq ($(FTE_TARGET),web) RELEASE_LDFLAGS=-O3 -s TOTAL_MEMORY=$(ASMJS_MEMORY) $(EMCC_LDFLAGS) # RELEASE_LDFLAGS=-O1 -s TOTAL_MEMORY=$(WEB_MEMORY) $(EMCC_LDFLAGS) DEBUG_LDFLAGS=-O0 -g4 -s TOTAL_MEMORY=$(WEB_MEMORY) $(EMCC_LDFLAGS) -s SAFE_HEAP=1 -s ALIASING_FUNCTION_POINTERS=0 -s ASSERTIONS=2 - CC?=emcc - CXX?=emcc + CC=emcc + CXX=em++ #BASELDFLAGS= PRECOMPHEADERS= diff --git a/engine/client/m_download.c b/engine/client/m_download.c index e2b1b5ea6..69211aff0 100644 --- a/engine/client/m_download.c +++ b/engine/client/m_download.c @@ -2616,8 +2616,7 @@ static void PM_WriteInstalledPackages(void) COM_QuotedKeyVal("title", p->title, buf, sizeof(buf)); if (*p->version) COM_QuotedKeyVal("ver", p->version, buf, sizeof(buf)); - //if (*p->gamedir) - COM_QuotedKeyVal("gamedir", p->gamedir, buf, sizeof(buf)); + COM_QuotedKeyVal("gamedir", p->gamedir, buf, sizeof(buf)); if (p->qhash) COM_QuotedKeyVal("qhash", p->qhash, buf, sizeof(buf)); if (p->priority!=PM_DEFAULTPRIORITY) diff --git a/engine/common/bothdefs.h b/engine/common/bothdefs.h index 7df61e2af..3423de659 100644 --- a/engine/common/bothdefs.h +++ b/engine/common/bothdefs.h @@ -308,8 +308,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #undef RUNTIMELIGHTING //too slow anyway #undef Q2CLIENT #undef Q2SERVER //requires a dll anyway. - #undef Q3CLIENT - #undef Q3SERVER //trying to trim memory use +// #undef Q3CLIENT +// #undef Q3SERVER //trying to trim memory use // #undef Q2BSPS //emscripten can't cope with bss, leading to increased download time. too lazy to fix. // #undef Q3BSPS //emscripten can't cope with bss, leading to increased download time. too lazy to fix. #undef TERRAIN diff --git a/engine/common/fs_zip.c b/engine/common/fs_zip.c index 4eae8a08b..40899f1c2 100644 --- a/engine/common/fs_zip.c +++ b/engine/common/fs_zip.c @@ -788,6 +788,7 @@ struct decompressstate }; #if defined(AVAIL_ZLIB) || defined(AVAIL_BZLIB) +#define DO_ZIP_DECOMPRESS #ifdef ZIPCRYPT #define CRC32(c, b) ((*(st->crctable+(((int)(c) ^ (b)) & 0xff))) ^ ((c) >> 8)) @@ -1187,11 +1188,6 @@ static vfsfile_t *FSZIP_Decompress_ToTempFile(struct decompressstate *decompress } return NULL; } -#else -vfsfile_t *FSZIP_Decompress_ToTempFile(struct decompressstate *decompress) -{ - return NULL; -} #endif //an open vfsfile_t @@ -1202,7 +1198,9 @@ typedef struct { //in case we're forced away. zipfile_t *parent; +#ifdef DO_ZIP_DECOMPRESS struct decompressstate *decompress; +#endif qofs_t pos; qofs_t length; //try and optimise some things // int index; @@ -1217,11 +1215,14 @@ static int QDECL VFSZIP_ReadBytes (struct vfsfile_s *file, void *buffer, int byt if (vfsz->defer) return VFS_READ(vfsz->defer, buffer, bytestoread); +#ifdef DO_ZIP_DECOMPRESS if (vfsz->decompress) { read = vfsz->decompress->Read(vfsz->decompress, buffer, bytestoread); } - else if (Sys_LockMutex(vfsz->parent->mutex)) + else +#endif + if (Sys_LockMutex(vfsz->parent->mutex)) { VFS_SEEK(vfsz->parent->raw, vfsz->pos+vfsz->startpos); if (vfsz->pos + bytestoread > vfsz->length) @@ -1245,6 +1246,7 @@ static qboolean QDECL VFSZIP_Seek (struct vfsfile_s *file, qofs_t pos) if (vfsz->defer) return VFS_SEEK(vfsz->defer, pos); +#ifdef DO_ZIP_DECOMPRESS //This is *really* inefficient if (vfsz->decompress) { //if they're going to seek on a file in a zip, let's just copy it out @@ -1261,6 +1263,7 @@ static qboolean QDECL VFSZIP_Seek (struct vfsfile_s *file, qofs_t pos) return false; } } +#endif if (pos > vfsz->length) return false; @@ -1289,8 +1292,10 @@ static qboolean QDECL VFSZIP_Close (struct vfsfile_s *file) if (vfsz->defer) VFS_CLOSE(vfsz->defer); +#ifdef DO_ZIP_DECOMPRESS if (vfsz->decompress) vfsz->decompress->Destroy(vfsz->decompress); +#endif FSZIP_ClosePath(&vfsz->parent->pub); Z_Free(vfsz); @@ -1419,8 +1424,10 @@ static vfsfile_t *QDECL FSZIP_OpenVFS(searchpathfuncs_t *handle, flocation_t *lo } else { +#ifdef DO_ZIP_DECOMPRESS if (vfsz->decompress) vfsz->decompress->Destroy(vfsz->decompress); +#endif Z_Free(vfsz); return NULL; } diff --git a/engine/common/net_wins.c b/engine/common/net_wins.c index 6b22c8360..d06fa6def 100644 --- a/engine/common/net_wins.c +++ b/engine/common/net_wins.c @@ -225,6 +225,7 @@ ftecrypto_t *cryptolib[cryptolib_count] = &crypto_gnutls, #endif }; +#if defined(HAVE_SSL) static void NET_TLS_Provider_Changed(struct cvar_s *var, char *oldvalue) { int i; @@ -245,6 +246,7 @@ static void NET_TLS_Provider_Changed(struct cvar_s *var, char *oldvalue) Con_Printf("\n"); } } +#endif qboolean NET_RegisterCrypto(void *module, ftecrypto_t *driver) { int i; @@ -253,7 +255,9 @@ qboolean NET_RegisterCrypto(void *module, ftecrypto_t *driver) for (i = 0; i < cryptolib_count; i++) if (cryptolibmodule[i] == module) cryptolibmodule[i] = NULL, cryptolib[i] = NULL; +#if defined(HAVE_SSL) Cvar_ForceCallback(&tls_provider); +#endif return true; } else @@ -262,7 +266,9 @@ qboolean NET_RegisterCrypto(void *module, ftecrypto_t *driver) if (!cryptolib[i]) { cryptolibmodule[i] = module, cryptolib[i] = driver; +#if defined(HAVE_SSL) Cvar_ForceCallback(&tls_provider); +#endif return true; } return false; @@ -2296,10 +2302,10 @@ qboolean NET_IsLoopBackAddress (netadr_t *adr) } -#ifdef HAVE_SSL void *Auth_GetKnownCertificate(const char *certname, size_t *size) { //our 'code signing' certs //we only allow packages to be installed into the root dir (or with dll/so/exe extensions) when their signature is signed by one of these certificates +#ifdef HAVE_SSL static struct { const char *name; @@ -2339,8 +2345,10 @@ void *Auth_GetKnownCertificate(const char *certname, size_t *size) return certs[i].cert; } } +#endif return NULL; } +#ifdef HAVE_SSL void *TLS_GetKnownCertificate(const char *certname, size_t *size) { //Note: This is XORed because of shitty scanners flagging binaries through false positive, flagging the sites that they were downloaded from, flagging binaries that contain references to those sites, and flagging any site that contains binaries. @@ -3779,11 +3787,9 @@ static qboolean FTENET_Datagram_ChangeLocalAddress(struct ftenet_generic_connect //doesn't match how its currently bound, so I guess we need to rebind then. return false; } -#endif static void FTENET_Datagram_Close(ftenet_generic_connection_t *con) { -#ifdef HAVE_PACKET if (con->thesocket != INVALID_SOCKET) { #ifdef HAVE_EPOLL @@ -3791,9 +3797,9 @@ static void FTENET_Datagram_Close(ftenet_generic_connection_t *con) #endif closesocket(con->thesocket); } -#endif Z_Free(con); } +#endif #ifdef HAVE_EPOLL static void FTENET_Datagram_Polled(epollctx_t *ctx, unsigned int events) diff --git a/engine/common/particles.h b/engine/common/particles.h index 15bcbb68e..0b97ad7f6 100644 --- a/engine/common/particles.h +++ b/engine/common/particles.h @@ -195,9 +195,9 @@ typedef enum { BM_PREMUL/*ONE ONE_MINUS_SRC_ALPHA*/, BM_RTSMOKE /*special shader generation that causes these particles to be lit up by nearby rtlights, instead of just being fullbright junk*/ } blendmode_t; -#define frandom() (rand()*(1.0f/RAND_MAX)) -#define crandom() (rand()*(2.0f/RAND_MAX)-1.0f) -#define hrandom() (rand()*(1.0f/RAND_MAX)-0.5f) +#define frandom() (rand()*(1.0f/(float)RAND_MAX)) +#define crandom() (rand()*(2.0f/(float)RAND_MAX)-1.0f) +#define hrandom() (rand()*(1.0f/(float)RAND_MAX)-0.5f) #define P_INVALID -1