Commit Graph

743 Commits

Author SHA1 Message Date
Andrey Akhmichin
ffd5c2d3d0 engine: common: soundlib: libmpg: backport fix for CVE-2017-12839.
Original patch: https://www.mpg123.de/cgi-bin/scm/mpg123/trunk/src/libmpg123/getbits.h?view=patch&r1=2024&r2=4323
Same as: 8a5e21a2a2
2023-01-25 15:57:52 +03:00
Alibek Omarov
ef1572b15b engine: crashhandler: fix build on FreeBSD (and probably on NetBSD and OpenBSD) 2023-01-18 19:45:21 +03:00
Alibek Omarov
aaeb18f433 engine: inline version of MSG_BigShort 2023-01-18 19:29:27 +03:00
Alibek Omarov
500ca54550 Revert "engine: get rid of MSG_BigShort, use htons instead, since network headers are always included"
This reverts commit a6475f530b.
2023-01-18 19:21:51 +03:00
Alibek Omarov
a6475f530b engine: get rid of MSG_BigShort, use htons instead, since network headers are always included 2023-01-14 10:58:04 +03:00
Alibek Omarov
6ac3156a82 engine: fix discarded const pointer qualifier in PM_HullPointContents 2023-01-14 10:57:22 +03:00
Xav101
9466461ce0
engine: preliminary support for SGI IRIX (#1211)
* Added definitions for IRIX

* Patchset to get dedicated server to compile on IRIX.

* Cleaned up debug statements in wscript

* Potential bug in IRIX implementation of isnan? For now just use the portable macro.

* Include the platform port files in the build

* Temporary execution script for setting appropriate library search paths to the right locations in the build directory. This should probably get replaced with a more permanent script at some point which lives in the same directory as the normal xash binary, or be replaced by a solution that sets the rpath during config or modifies rpath during install.

* Clean up formatting and remove unneeded debugging statements

* Added GPL copyright notice and description

* Moved to irix platform folder and edited script

* Re-introduced _inline macro

* Replace spaces with tabs

Co-authored-by: Xav101 <xaviernye@msn.com>
2023-01-14 09:35:30 +03:00
Alibek Omarov
1119a9ac22 engine: network: reenable DNS resolving in separate thread for Windows 2023-01-13 08:09:16 +03:00
Alibek Omarov
171c0c8d3b engine: common: zone: use stdint types 2023-01-12 04:04:53 +03:00
Alibek Omarov
9b5e0fef01 engine: common: zone: make Mem_Alloc return aligned addresses on ILP32, thanks Xav101 on Discord for heads up 2023-01-12 04:02:04 +03:00
Alibek Omarov
eb0459a045 engine: strip Intel suffixes from server library name, but only on special platforms
Remove same code from filesystem, it's not what filesystem should do
2023-01-10 04:51:34 +03:00
Alibek Omarov
113904ea91 public: fix build 2023-01-09 22:47:54 +03:00
Alibek Omarov
209a03a12a engine, public: prepare to removal of XASH_MSVC macro 2023-01-09 08:01:52 +03:00
Alibek Omarov
c28aeb2362 engine: make crashhandler implementation choice private to crashhandler code 2023-01-09 07:55:54 +03:00
Alibek Omarov
2479d28cd5 engine: remove useless pfnHullPointContents wrapper 2023-01-06 00:38:05 +03:00
Alibek Omarov
787d3bc5dd engine: share playermove ClearPhysEnts function 2023-01-06 00:28:24 +03:00
Alibek Omarov
0bec78a958 engine: client: make few function between pmove and client interface shared, remove unused CL_PointContents wrapper 2023-01-06 00:09:36 +03:00
Alibek Omarov
e305b81df0 engine: merge PM_TraceTexture into PM_TraceTexturePmove 2023-01-05 23:59:31 +03:00
Alibek Omarov
4cb109abe0 engine: make playermove funcs truly shared between client and server 2023-01-05 23:50:42 +03:00
Alibek Omarov
49a65edfc3 engine: imagelib: img_quant: fix a bug in quantizer (thanks, @SNMetamorph for fix) 2023-01-05 07:24:24 +03:00
Alibek Omarov
51b5d7a41d engine: host: ensure we always have right slashes under Windows 2023-01-04 19:39:52 +03:00
Alibek Omarov
80507b2eca engine: mod_bmodel: fix const qualifier discard warning 2023-01-04 17:55:59 +03:00
Alibek Omarov
ed47346ef1 engine: crashhandler: fix _GNU_SOURCE redefined warning 2023-01-04 17:54:45 +03:00
Alibek Omarov
d047dfc319 engine: add few lines in mod_bmodel back, got removed in previous commits accidentally 2023-01-03 18:26:18 +03:00
Alibek Omarov
13ed2742b2 engine: check for bsp30ext before trying to use extended clipnodes, fix 32-bit clipnodes check 2023-01-03 07:50:50 +03:00
Alibek Omarov
df1c9a5029 engine: simplify blue shift swapped lump check, change TestBmodelLumps to avoid reading past mod buffer 2023-01-03 07:01:39 +03:00
Alibek Omarov
e621c98602 engine: network: do not crash if one of v4 or v6 socket opening failed but crash if both. Fix hostport/clientport cvars usage 2022-12-30 02:06:15 +03:00
Alibek Omarov
41aa867a21 engine: common: don't try to delete now non-existing config file after backing up 2022-12-27 02:31:46 +03:00
MoeMod Server #2
499cd48e83 filesystem: fix lseek for mpg123 2022-12-24 22:02:58 +03:00
Andrey Akhmichin
444e08f59a engine: common: simplify strings operations. 2022-12-21 03:26:41 +03:00
Alibek Omarov
327017421c
engine: common: zone: redefine poolhandle_t back to pointer for 32-bit systems 2022-12-19 18:38:49 +03:00
Alibek Omarov
f3400c983e engine: network: fix address comparator 2022-12-15 12:25:03 +03:00
Alibek Omarov
754d55beef engine: common: fix for HLBSP extended clipnodes hack when BSP2 support is enabled 2022-12-13 11:34:42 +03:00
Alibek Omarov
07afbd64d4 engine: common: host: force set HOST_FRAME status for dedicated as it finished initializing 2022-12-13 10:54:06 +03:00
Alibek Omarov
af7d6f6fa8 engine: common: no point to allow if and else commands in unprivileged mode since scripting is available only for privileged 2022-12-12 08:18:00 +03:00
Alibek Omarov
cb0f513bf0 engine: common: allow cvar substituion in privileged mode only to prevent leaking sensitive data 2022-12-12 08:14:01 +03:00
Alibek Omarov
a3ef6c955c engine: don't double register rcon_password cvar 2022-12-12 08:13:24 +03:00
Alibek Omarov
18c94b6ec4 engine: common: add network address comparator function 2022-12-12 06:30:47 +03:00
SNMetamorph
840283d6e5 engine: netchan: fixed fragbufs very high memory usage 2022-12-09 19:20:53 +03:00
SNMetamorph
d72481e5ac engine: netchan: fixed downloading files output directory 2022-12-09 19:20:53 +03:00
SNMetamorph
dbe9309475 engine: netchan: fixed wrong compressed file size calculation 2022-12-09 19:20:53 +03:00
Alibek Omarov
d50ed1c087 engine: common: host: don't prepend # to command arguments when changing game to dedicated, it wasn't used and implement anymore 2022-12-08 05:44:17 +03:00
Alibek Omarov
ea3bfd969c engine: imagelib: img_wad: dirty hack to fix black holes in console background images 2022-12-08 05:40:11 +03:00
Alibek Omarov
0e9106685b engine: imagelib: img_png: fix Mem_Free on null ptr 2022-12-05 06:13:04 +03:00
Alibek Omarov
9b001987e9 engine: imagelib: fix crash when chunk length is more than file size 2022-12-05 05:39:41 +03:00
Alibek Omarov
5c2c02c317 engine: common: custom: use IL_LOAD_PLAYER_DECAL flag when loading custom player decals 2022-12-05 04:56:07 +03:00
Alibek Omarov
21c898d796 engine: imagelib: validate player decal image size (max 512x512) 2022-12-05 04:55:24 +03:00
Alibek Omarov
e48b708fa6 engine: imagelib: img_png: validate image size through common engine function 2022-12-05 04:54:20 +03:00
Alibek Omarov
ccf7619ae5 engine: imagelib: refactor image loading function 2022-12-05 03:22:07 +03:00
Alibek Omarov
7d0d6b8e0d engine: common: host: implement adaptive sleeptime, log time to first time for debug purposes 2022-12-05 03:22:07 +03:00
SNMetamorph
58465c3727 engine: common: fixed dedicated server bug
The problem is server wasn't executing server.cfg if map specified in startup parameters
2022-12-04 23:29:26 +03:00
Andrey Akhmichin
177ed2c603 engine: common: simplify strings operations. 2022-12-04 22:37:45 +03:00
Andrey Akhmichin
7bb994f7bc engine: common: imagelib: img_png.c: fix wrong palette decoding. 2022-12-04 22:09:24 +03:00
Alibek Omarov
51161004eb engine: common: simplify string operations 2022-12-04 05:26:22 +03:00
Alibek Omarov
270e2a76a8 engine: soundlib: simplify string operation 2022-12-04 05:26:22 +03:00
Alibek Omarov
c61442e960 engine: imagelib: simplify string operation 2022-12-04 05:26:22 +03:00
Alibek Omarov
ebf3877cda engine: common: throw an error message into log in normal mode too! 2022-12-02 21:22:22 +03:00
Alibek Omarov
e97310c441 engine: common: net_ws: fix uninitialized family in IPSocket 2022-12-02 21:21:53 +03:00
Alibek Omarov
f30f23ba51 engine: common: validate and load PNG images in customization 2022-12-01 18:25:11 +03:00
Alibek Omarov
9cbf5ab6a6 engine: client: streamline constructing master server scan request through common function 2022-12-01 01:51:07 +03:00
Alibek Omarov
aa6a1db0a9 engine: remove duplicate svc_strings definition 2022-12-01 00:34:33 +03:00
Alibek Omarov
8b6f12418e engine: common: make few network cvars privileged 2022-11-29 13:29:47 +03:00
Alibek Omarov
93b2f535e2 engine: client: tune max commands/max backup commands values for legacy protocol 2022-11-27 18:26:53 +03:00
SNMetamorph
084fac3606 engine: common: hpak: fixed rest of bugs in HPAK_AddLump 2022-11-27 04:50:30 +03:00
Alibek Omarov
f377461fdf engine: common: made a filter for a filter (lol), so it's possible to play selected games with cl_filterstuffcmd enabled 2022-11-27 04:45:03 +03:00
SNMetamorph
65671d8788 engine: common: minor code fixes in hpak.c 2022-11-25 23:05:48 +03:00
SNMetamorph
49fc6143ab engine: common: imagelib: fixed loading 32 bits per pixel BMP files 2022-11-25 22:30:49 +03:00
SNMetamorph
8717843333 engine: common: imagelib: fixed BMP files estimate size calculation with NPOT textures 2022-11-25 22:30:49 +03:00
SNMetamorph
f6d8996968 engine: common: imagelib: added missed BMP compression type macros 2022-11-25 22:30:49 +03:00
Alibek Omarov
9389305072 engine: common: set cl_filterstuffcmd to 1 by default 2022-11-25 22:23:51 +03:00
SNMetamorph
49d93c0e76 engine: common: custom: increased custom decal size limit to 128Kb, added wrong size warning 2022-11-22 17:59:41 +03:00
SNMetamorph
707c93c32c engine: common: hpak: all file operations made to use gamedir only 2022-11-22 17:59:41 +03:00
Alibek Omarov
64e97124c3 Merge master to ipv6 2022-11-17 19:34:46 +03:00
Alibek Omarov
17d0b19f9e engine: use generic S_USAGE macro everywhere 2022-11-10 13:18:20 +03:00
Alibek Omarov
d13f7f06e4 engine: fix framerate being capped to 60FPS with vsync, remove vid_displayfrequency cvar. Never sleep with vsync or timedemo, for accuracy 2022-11-10 13:05:03 +03:00
Alibek Omarov
f469b56b93 engine: host: only sleep once between frames 2022-11-10 12:42:48 +03:00
Alibek Omarov
0a49e69818 engine: introduce Sys_DebugBreak function to raise an exception for debugger 2022-11-10 12:10:48 +03:00
SNMetamorph
d1309c3aeb engine: common: backported "set" command from old engine 2022-11-10 11:56:10 +03:00
Andrey Akhmichin
d237114962 engine: common: imagelib: img_png.c: unroll loops. 2022-11-02 14:14:05 +06:00
SNMetamorph
ee8098839e engine: common: pm_trace: fixed non portable code in PM_ConvertTrace 2022-10-27 00:52:16 +06:00
Alibek Omarov
1a09d297ee engine: minimize SetCursorType calls count 2022-10-13 14:49:48 +03:00
Alibek Omarov
360dc4f7ed engine: try to make hashpaks more compatible between 32-bit and 64-bit platforms 2022-09-20 21:57:13 +03:00
Alibek Omarov
0645402946 engine: fix crash when reading GoldSrc hashpaks 2022-09-19 06:03:01 +03:00
Alibek Omarov
f571a41cf3 wscript: allow to setup engine default gamedir during configure 2022-09-11 02:12:44 +03:00
Andrey Akhmichin
fd152e82e8 engine: common: imagelib: img_png.c: add support for indexed and grayscale PNG images. 2022-09-08 12:11:02 +03:00
Alibek Omarov
f633b3dbf6 engine: increase MAX_INIT_MSG to 192 kilobytes limit
* also avoid magic number in sv_client.c
2022-08-27 22:13:21 +03:00
Alibek Omarov
ca2a6635b6 engine: common: fix cmdlist and cvarlist to match the beginning of command or cvar 2022-08-25 19:22:06 +03:00
Alibek Omarov
ac05acf6dc
engine: network: I'm fucking blind 2022-08-23 20:04:59 +03:00
Alibek Omarov
3e1db432df
engine: network: fix IPv4 private address checks according to RFC1918
Thanks to @Mr0maks for the fix
2022-08-23 19:15:50 +03:00
Alibek Omarov
f435a81c97 engine: soundlib: rewrite sfx resampler, fix possible crash if sfx is too long
- make same rate and same width resamples noop, as everything signed now
- minimize comparisons in loop body
2022-08-22 10:14:01 +03:00
Владислав Сухов
d3437c70bd engine: soundlib: fix wrong sample rate unit 2022-08-20 15:35:14 +03:00
Alibek Omarov
01a3321d63 engine: client: only accept server list from master servers (thanks @tyabus for idea) 2022-08-17 21:17:51 +03:00
Alibek Omarov
5a5e72c424 engine: print current bug-compatibility level, if enabled 2022-08-17 14:44:03 +03:00
Alibek Omarov
6e864e4f8f engine: introduce bug compatibility levels
* for now we only have GoldSrc bug compatibility, can be used for
  games that require precise GoldSrc behaviour, like CSCZDS
* enabled with -bugcomp command line
* added text in --help
2022-08-15 06:00:00 +03:00
Alibek Omarov
314672d82c engine: client: fix invalid playerinfo being accessed by renderer 2022-08-13 01:29:45 +03:00
Alibek Omarov
d6dfeaeba7 engine: fix searching filesystem_stdio on mobile platforms 2022-08-06 20:16:56 +03:00
Alibek Omarov
3d5aa7c20c engine: remove mistakingly placed NORETURN attributes 2022-08-05 18:05:40 +03:00
Alibek Omarov
c025606739 engine: whereami: fix C89 in Android detection 2022-08-01 14:33:36 +03:00
Alibek Omarov
3c4eec62ae engine: let engine find the filesystem library, if it wasn't loaded yet 2022-08-01 13:25:51 +03:00
Alibek Omarov
5e4fc64430 filesystem: introduce new module, based on engine filesystem.
The goal is to share filesystem code between engine and
utilities and provide C++ VFileSystem interface in the future
2022-07-28 18:56:02 +03:00
Alibek Omarov
12ea6dcfd7 public: move build.c from engine to public library, in preparation of filesystem_stdio merge 2022-07-26 04:10:36 +03:00
Alibek Omarov
a41f8cb01b engine: move version strings to com_strings.h file, in preparation of filesystem_stdio branch merge 2022-07-26 04:07:52 +03:00
Alibek Omarov
5350d88f57 public: crtlib: add quotation mark support for ParseFile, required for filesystem_stdio 2022-07-26 03:17:11 +03:00
Valery Klachkov
3ad60a0fa1
engine: fix uninitialized variable in demo parsing code, fix incorrect size counter in memory allocator 2022-07-16 16:59:41 +03:00
a1batross
fc84cd2a0a
engine: common: always show message box when we're in normal mode
Only dedicated server is expected to throw errors to console
2022-07-11 02:45:40 +03:00
SNMetamorph
d8724f0be4 engine: common: net_ws: disabled read-only flag for ip cvar 2022-07-10 18:28:06 +03:00
SNMetamorph
36b0d47f5f engine: common: net_ws: fixed sockets reinitialization in NET_OpenIP 2022-07-10 18:28:06 +03:00
SNMetamorph
6891ed8064 engine: common: net_ws: backported NAT bypass feature 2022-07-10 18:28:06 +03:00
SNMetamorph
8f91830997 engine: added changeport parameter for NET_Config 2022-07-10 18:28:06 +03:00
Alibek Omarov
95ed044fee engine: common: disable cl_filterstuffcmd by default 2022-06-29 18:14:53 +03:00
Alibek Omarov
c076f4ff8e engine: common: add generic trace_t initialize function 2022-06-26 04:39:15 +03:00
Andrey Akhmichin
87ce35b32d engine: common: imagelib: img_utils.c: change formats priority. 2022-06-25 17:23:44 +03:00
Alibek Omarov
36cec298c2 Revert "engine: common: imagelib: img_tga.c: fix broken tga flip."
This reverts commit 99de598ea4.
2022-06-25 17:03:13 +03:00
Alibek Omarov
6199426e5e Revert "engine: common: imagelib: img_tga.c: fix broken tga flip again."
This reverts commit e5720cf8b9.
2022-06-25 17:03:12 +03:00
Andrey Akhmichin
e5720cf8b9 engine: common: imagelib: img_tga.c: fix broken tga flip again. 2022-06-24 14:18:30 +03:00
Andrey Akhmichin
99de598ea4 engine: common: imagelib: img_tga.c: fix broken tga flip. 2022-06-24 07:38:21 +03:00
Jesse Buhagiar
b23d5ed354 Build: Add SerenityOS to list of compatible systems
This is required by the build system to spit out a library with
the correct name/platform.
2022-06-20 00:01:37 +03:00
Tim Schumacher
a1ce5faac2 Engine: Keep HTTP from endlessly formatting NaN values
For whatever reason, our progress count for HTTP downloads stays at 0.
This results in the engine calculating a NaN progress value many times
each frame, which results in a significant performance hit.
2022-06-20 00:01:37 +03:00
Alibek Omarov
463997da51 engine: common: delete unused Mod_Handle function 2022-06-15 13:54:54 +03:00
Alibek Omarov
2218126c75 engine: disable stdout output and flush on Windows, Wcon already does the job 2022-06-14 04:41:37 +03:00
Alibek Omarov
2388260848 engine: optimize colored output
* removed unneeded formatting for Android
* make generic function to output colorless and colorized strings
* disable color output on low memory devices to not waste CPU cycles on it
2022-06-14 04:23:09 +03:00
Alibek Omarov
45bf927c74 engine: filesystem: avoid FS_SysFolderExists spam if stat returned ENOTDIR 2022-06-14 03:27:56 +03:00
Alibek Omarov
347c6d6a91 engine: common: don't output log to stdout on Win32 where it's done by Wcon. Better colorcode filtration 2022-06-14 03:27:21 +03:00
Velaron
402b38951d engine: better color code stripping 2022-06-13 23:36:13 +03:00
Velaron
6807cf5849 engine: fix build on android 2022-06-13 23:36:13 +03:00
Velaron
15dc25d2cd engine: rename Q_cleanstr to something more meaningful 2022-06-13 23:36:13 +03:00
Velaron
568c7fd917 engine: strip color codes when writing to log 2022-06-13 23:36:13 +03:00
Alibek Omarov
e5562a7b61 engine: whereami: fix C89 2022-06-13 04:33:12 +03:00
Alibek Omarov
e44718d531 engine: fix build 2022-06-13 04:17:02 +03:00
Alibek Omarov
e6a2c207de engine: implement change game with execv in-engine. For now it enabled for all platforms, will probably disabled selectively 2022-06-13 03:42:20 +03:00
Alibek Omarov
df83b155a1 game_launch: rip out execv code 2022-06-13 03:26:44 +03:00
Alibek Omarov
cc2c97cfad engine: include whereami library to detect current executable path, may be reworked later if needed 2022-06-13 03:07:37 +03:00
Alibek Omarov
7c9f5f8ab1 engine: remove LoadLibrary macros, to avoid possible misuse. Although macros moved to game_launch, it's part of it's own problem from now 2022-06-11 03:25:57 +03:00
Andrey Akhmichin
6b4f55c4bf engine: common: filesystem.c: do not load archives with zip extention again 2022-06-10 23:26:14 +03:00
Alibek Omarov
f467d0c807 game_launch: fix Windows build (as suggested by @SNMetamorph) 2022-06-09 20:27:27 +03:00
Alibek Omarov
a717b7fc49 game_launch: declare environ variable, by standard it must be declared by user program 2022-06-09 14:44:04 +03:00
Alibek Omarov
07a9c4602d game_launch: change game with execve on supported platforms 2022-06-09 13:42:16 +03:00
Alibek Omarov
2b8b3e1993 engine: server: new IP filter, rewritten with IPv6 in mind 2022-06-09 03:10:02 +03:00
Alibek Omarov
b0a889d1a1 engine: bring back simple netadr_t, as we don't care about IPv4-to-IPv6 mapped addresses anymore 2022-06-09 03:10:02 +03:00
Alibek Omarov
bd1bfea695 engine: second iteration of IPv6 support
Made code smaller
Fixed problem where v6 and v4 socket can't use same port
Added support for v4-to-v6 mapped addresses, although it's kept unused
Probably final version
2022-06-09 03:10:02 +03:00
Alibek Omarov
1a5a76a201 engine: common: minor fixes to ipv6text library 2022-06-09 03:10:02 +03:00
Alibek Omarov
b072b627a2 engine: enable getaddrinfo on Windows, fix build 2022-06-09 03:10:02 +03:00
Alibek Omarov
5d18c6d678 engine: fix declaration-after-statement 2022-06-09 03:10:02 +03:00
Alibek Omarov
59fba30a52 engine: IPv6 support
* v6 equivalent cvars
* hostname resolving for v6
* fix for nonblocking hostname resolve (inverted check)
* enabled by default, probably should be disabled for dedicated servers
2022-06-09 03:10:02 +03:00
Alibek Omarov
193cde83b6 engine: add IPv6 address parsing/printing library from GameNetworkingSockets 2022-06-09 03:10:02 +03:00
Alibek Omarov
6f36edfd16 engine: various const qualifier fixes 2022-05-29 04:22:43 +03:00
Alibek Omarov
86a777880f engine: common: mark AbortCurrentFrame as NORETURN, fix noreturn warnings 2022-05-29 01:58:56 +03:00
Alibek Omarov
843c9abf9b engine: common: fix array underrun 2022-05-25 03:38:19 +03:00
Alibek Omarov
924e895753 engine: common: set Host_Error and Sys_Error as NORETURN 2022-05-25 03:38:02 +03:00
Alibek Omarov
51526948c0 engine: server: make PEntityOfEntIndex bug-compatible with GoldSrc
Add new undocumented GoldSrc eiface function, PEntityOfEntIndexAllEntities,
a bug-free version of PEntityOfEntIndex

Ref: https://github.com/ValveSoftware/halflife/issues/2272
2022-05-21 03:03:59 +03:00