Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
319 commits
Select commit Hold shift + click to select a range
cba880b
ref: gl: turn magic skybox numbers into defined macros
a1batross May 19, 2023
cf85d42
ref: gl: ignore GenTextures objects that fall into reserved space for…
a1batross May 19, 2023
2f5c8f9
engine: server: make generic function to kick players with a reason
a1batross May 17, 2023
0ae80f9
engine: server: implement simple anti-speedhack
a1batross May 17, 2023
c9c79ca
engine: server: use sv_speedhack_kick cvar value as a number of speed…
a1batross May 19, 2023
fccd0b5
engine: client: move some RenderAPI GetParm queries to engine
a1batross May 19, 2023
b1f28ba
platform: win32: properly change icon
Velaron May 20, 2023
1596761
ref: gl: Goldsrc compatible fog implementation
Velaron May 20, 2023
6f3044e
engine: server: do not trigger speedhack detection for fakeclients
a1batross May 23, 2023
d8c0a68
engine: platform: sdl: fix possible buffer overrun in SDL port audio …
a1batross May 24, 2023
50ba271
engine: common: cvar: do not check if cvar was registered in DirectSe…
a1batross May 24, 2023
67ddde3
github: don't wait for flatpak build finish, it's broken for us anyway
a1batross May 24, 2023
ab53c59
scripts: flatpak: try to fix flatpak build on GitHub Actions
a1batross May 24, 2023
6c35d1e
scripts: waifulib: compiler_optimizations: set pentium-m minimum cpu …
a1batross May 24, 2023
1b97c8d
Revert "github: don't wait for flatpak build finish, it's broken for …
a1batross May 24, 2023
c49c409
mainui: update
a1batross May 24, 2023
7586588
scripts: waifulib: compiler_optimizations: fix -march applying on x86…
a1batross May 24, 2023
f454b5a
filesystem: add base test case to call ShutdownStdio without calling …
a1batross May 26, 2023
d5d9175
filesystem: make some calls from API safe to use without initialize
a1batross May 26, 2023
26b66e7
filesystem: verbose error printing in FS_SetCurrentDirectory, move er…
a1batross May 26, 2023
e815c48
filesystem: fix Windows build
a1batross May 27, 2023
cf8b6d0
engine: server: greatly simplify pfnWriteString implementation, it sh…
a1batross May 27, 2023
8d1f9bd
filesystem: remove unused argument from FS_CheckNastyPath
a1batross May 27, 2023
b7243fc
filesystem: properly support compressed archives in FS_LoadFile
a1batross May 27, 2023
3a9700f
filesystem: wad: adapt to new interface
a1batross May 27, 2023
6f2a3ba
filesystem: zip: adapt to new interface
a1batross May 27, 2023
95e61ad
filesystem: zip: static-ize ZIP functions
a1batross May 27, 2023
4842ef8
filesystem: wad: static-ize WAD functions
a1batross May 27, 2023
b07d5ee
engine: always read and set vid_fullscreen value directly with it's o…
a1batross May 19, 2023
59165a0
engine: move vid cvars to static allocation
a1batross May 19, 2023
f54994f
engine: move ref cvars to static allocation
a1batross May 19, 2023
9073cda
engine: client: move keys cvars to static allocation
a1batross May 19, 2023
fa3ea49
engine: client: move input cvars to static allocation
a1batross May 19, 2023
d380cb9
engine: client: move main client cvars to static allocation
a1batross May 19, 2023
99eaddf
engine: client: move scrn cvars to static allocation
a1batross May 19, 2023
d5af46f
engine: client: move netgraph cvars to static allocation
a1batross May 19, 2023
f4a9d8d
engine: client: move joystick cvars to static allocation
a1batross May 19, 2023
8f88022
engine: client: move console cvars to static allocation
a1batross May 19, 2023
b0fc481
engine: client: move touch cvars to static allocation
a1batross May 19, 2023
a7d2f63
engine: common: move host cvars to static allocation
a1batross May 19, 2023
75ca44a
engine: client: move tracer cvars to static allocation
a1batross May 19, 2023
153ffd7
engine: client: sound: move dsp cvars to static allocation
a1batross May 19, 2023
48a2037
engine: common: move model cvars to static allocation
a1batross May 19, 2023
9c11673
engine: common: move network cvars to static allocation
a1batross May 19, 2023
f45b9b4
engine: always unlink variables and commands BEFORE all pointers to t…
a1batross May 20, 2023
cf7c47b
engine: allow ref dlls to use convar_t
a1batross May 20, 2023
5685317
ref: soft: attempt to fix freeze in decals on software renderer
a1batross May 20, 2023
f34b9a3
ref: soft: move ref_soft cvars to static allocation, remove dead cvars
a1batross May 20, 2023
f49f0c1
engine: server: moved server cvars to static allocation
a1batross May 20, 2023
bcd2a1d
engine: platform: linux: move evdev_keydebug cvar to static allocation
a1batross May 20, 2023
ca3964a
engine: common: cvar: remove unused CVAR_TO_BOOL macro
a1batross May 20, 2023
2e7b24e
ref: gl: move ref_gl cvars to static allocation
a1batross May 20, 2023
c167535
ref: a bit more verbosity if UserTracer color exceed limit
a1batross May 27, 2023
157fccc
engine: server: move pfnWriteString character replacement hack to the…
a1batross May 29, 2023
7c298be
ref: gl: fix r_showhull check
a1batross May 29, 2023
bcc73d3
contrib: delete outdated files
a1batross Jun 1, 2023
f3f6326
3rdparty: upgrade GL wrappers submodules
a1batross Jun 2, 2023
5160d5b
scripts: sailfish: initial SailfishOS support
a1batross Jun 1, 2023
11a2762
wscript: better Sailfish/AuroraOS macros
a1batross Jun 2, 2023
48a49c2
mainui: update
a1batross Jun 2, 2023
cbb27c8
public: define XASH_MOBILE_PLATFORM by XASH_SAILFISH (defined externa…
a1batross Jun 2, 2023
f42197d
engine: platform: sdl: set QtWayland hints
a1batross Jun 2, 2023
da0f362
wscript: fix Sailfish misdetection
a1batross Jun 2, 2023
e35a201
3rdparty: mainui: update
a1batross Jun 3, 2023
1bbede5
filesystem: update optional funcs interface, add platform-specific Ge…
a1batross Jun 5, 2023
68a8949
engine: drop XASH_DYNAMIC_DLADDR
a1batross Jun 5, 2023
40b895e
engine: partially remove legacy Android port, in preparation of new p…
a1batross Jun 5, 2023
463029c
wscript: merge CMakeLists generating tool from Velaron's tree
a1batross Jun 5, 2023
3dd0038
engine: platform: android: merge new SDL2 based Android port from @Ve…
a1batross Jun 5, 2023
e279f4d
engine: platform: sdl: merge required SDL2 platform changes for new A…
a1batross Jun 5, 2023
145dfaa
engine: common: net_encode: use stdint.h types in Delta_CompareField
a1batross Jun 5, 2023
eb85b59
engine: common: net_buffer: use stdint.h types in sizebuf_t reading/w…
a1batross Jun 5, 2023
ef54c7e
engine: common: net_buffer: use uint32_t in place of dword
a1batross Jun 5, 2023
b6a4ca7
filesystem: fix Platform_GetNativeObject macro definition
a1batross Jun 6, 2023
e6addfc
engine: platform: implement generic GetNativeObject for POSIX systems…
a1batross Jun 7, 2023
e900eb3
filesystem: unify prototypes of archive opening functions
a1batross Jun 8, 2023
72a0cdf
filesystem: make generic archive loading functions (with the exceptio…
a1batross Jun 8, 2023
d73c203
filesystem: make fs_searchpaths completely private to the filesystem …
a1batross Jun 8, 2023
4ac03c3
filesystem: dir: fix FS_FixFileCase when empty string is passed. Alwa…
a1batross Jun 8, 2023
e5221f4
filesystem: implement .pk3dir convention
a1batross Jun 8, 2023
80ecee5
server: implement correct answers to TSourceEngineQuery server queries
jeefo Jun 9, 2023
c57a397
engine: server: query: use common SV_GetPlayerCount, fix random styli…
a1batross Jun 9, 2023
7a716a8
engine: client: ignore some out of band packets if we're not connecti…
a1batross Jun 11, 2023
2d55ff6
engine: server: query: A2S_PLAYER response should contain bots and n…
jeefo Jun 11, 2023
ecdb032
engine: server: log: fix log off command not disabling logging to con…
jeefo Jun 11, 2023
9cd74cd
engine: server: log: allow to disable logaddress without turning off …
jeefo Jun 11, 2023
dfede9c
engine: server: log: use S_USAGE in logaddress for consistency with e…
jeefo Jun 11, 2023
1842001
public: crclib: rework CRC32 code (thanks to @Mr0maks for implementat…
a1batross Jun 13, 2023
fed8b21
public: crclib: simplify CRC32_ProcessByte
a1batross Jun 13, 2023
7e248a3
public: use standard uint32_t in place of dword
a1batross Jun 13, 2023
c99e679
engine: server: pregenerate CRC table and testpacket data
a1batross Jun 13, 2023
5a8510d
mainui: update
a1batross Jun 13, 2023
38cf4fb
engine: server: port old engine's userinfo penalty
a1batross Jun 15, 2023
e683325
engine: server: port old engine's fullupdate ratelimit, but simplify it
a1batross Jun 15, 2023
2954e81
engine: server: do not assert if SetFatPVS/PAS were called without ac…
a1batross Jun 15, 2023
ffc7553
engine: server: static-ize few game API functions, set GAME_EXPORT at…
a1batross Jun 15, 2023
adc48f4
github: use ubuntu-latest for PSVita and NSwitch CI
a1batross Jun 15, 2023
9d418db
engine: server: add sv_log_outofband cvar that controls whether conne…
a1batross Jun 16, 2023
3ff4f05
engine: platform: refactor Platform_Init/Shutdown/GetNativeObject fun…
a1batross Jun 16, 2023
0e1b5c1
engine: platform: reorganize UpdateStatusLine, make it shared but imp…
a1batross Jun 16, 2023
45f0ccb
scripts: add sample systemd service
a1batross Jun 16, 2023
e12fb33
engine: server: keep silence in case of unset or invalid rcon password
a1batross Jun 18, 2023
8730ea8
engine: server: escape rcon arguments before passing it to command bu…
a1batross Jun 18, 2023
816905f
engine: platform: psvita: add unused data to workaround bug in vita-e…
a1batross Jun 18, 2023
0f39913
engine: server: static-ize functions in sv_game. Set GAME_EXPORT attr…
a1batross Jun 19, 2023
7daba09
engine: server: static-ize sv_phys functions, set GAME_EXPORT attribu…
a1batross Jun 19, 2023
4b4fb3f
engine: server: static-ize sv_pmove functions
a1batross Jun 19, 2023
592e23d
engine: server: static-ize sv_query functions
a1batross Jun 19, 2023
af0f4a0
engine: server: static-ize world functions
a1batross Jun 19, 2023
324d05f
filesystem: fix regression in FS_LoadFile not skipping leading slashes
a1batross Jun 20, 2023
8148898
engine: common: static-ize common.c functions, set GAME_EXPORT to API…
a1batross Jun 20, 2023
07c1004
wscript: check for opus 1.4, which fixes an assertion in custom modes…
a1batross Jun 21, 2023
352836f
wscript: clarify that higher versions of opus also accepted in a comment
a1batross Jun 21, 2023
7386b4c
3rdparty: vgui_support: update submodule
a1batross Jun 23, 2023
04ffe87
ref: gl: static-ize globals and functions in gl_warp
a1batross Jun 25, 2023
931dab8
public: mathlib: remove unused RemapVal, ApproachVal
a1batross Jun 25, 2023
255c118
public: move some simple functions to mathlib header. Remove assemble…
a1batross Jun 25, 2023
a3f18cd
ref: gl: psvita: disable NPOT textures, they're broken again
fgsfdsfgs Jun 25, 2023
cb47ee9
scripts: psvita: bump vitaGL version
fgsfdsfgs Jun 25, 2023
7adf512
engine: common: remove unused tentlist_t definition
a1batross Jun 27, 2023
dfc75ac
public: rewrite Q_strncpy with standard C functions, make it inlined …
a1batross Jun 27, 2023
83fca03
engine: common: net_encode: rewrite Delta_CompareField to be more eff…
a1batross Jun 27, 2023
e89b46a
engine: common: net_encode: directly access delta description struct …
a1batross Jun 27, 2023
00c96f3
engine: common: net_encode: fix Delta_CompareField to include integer…
a1batross Jun 28, 2023
3225460
engine: common: net_encode: simplify Delta_ClampIntegerField
a1batross Jun 28, 2023
a1876d5
Revert "engine: common: net_encode: fix Delta_CompareField to include…
a1batross Jun 28, 2023
03cbe9a
Revert "engine: common: net_encode: rewrite Delta_CompareField to be …
a1batross Jun 28, 2023
7d71edc
engine: common: net_encode: fix usage of new Delta_ClampIntegerField,…
a1batross Jun 28, 2023
a83d16a
engine: client: split protocol 48 support to separate file
a1batross Jun 29, 2023
87b0e7c
wscript: remove option --enable-stdin-input, it's enabled by default …
a1batross Jun 29, 2023
3203c99
engine: common: sys_con: always read from stdin when engine is in ded…
a1batross Jun 29, 2023
8f29d38
engine: client: cl_parse_48: add a temporary hack to avoid the lag is…
a1batross Jun 29, 2023
c2f3ec1
engine: client: make it more obvious that CL_InitEdicts depends on ma…
a1batross Jun 29, 2023
1154e4a
engine: server: properly remove remaining server operator commands
a1batross Jul 1, 2023
b2106f9
engine: server: make CRC32_MapFile public
a1batross Jul 1, 2023
811d93c
engine: client: implement map CRC32 checking on client side
a1batross Jul 1, 2023
ad58277
engine: client: fix appending extra .dem in record command
a1batross Jul 1, 2023
5cd893b
engine: client: restore cl_trace_events from old engine branch
a1batross Jul 2, 2023
59238b2
filesystem: do not print error in FS_Delete if file doesn't exist
a1batross Jul 2, 2023
e1e996f
filesystem: add two new gameinfo.txt keys quicksave_aged_count and au…
a1batross Jul 2, 2023
5ad5df4
engine: server: sv_save: use new quicksave_aged_count and autosave_ag…
a1batross Jul 2, 2023
fdcacb1
filesystem: simplify common parsing of type key for liblist.gam and g…
a1batross Jul 2, 2023
561fb33
filesystem: delete unused edicts key handler in liblist.gam parsing
a1batross Jul 2, 2023
9be72bf
filesystem: update max_particles limits based on Unkle Mike's latest …
a1batross Jul 2, 2023
245fe9c
Documentation: add basic document on gameinfo.txt keys and liblist.ga…
a1batross Jul 2, 2023
3a9ffed
Documentation: gameinfo: wording
a1batross Jul 2, 2023
72d4413
Documentation: gameinfo: clarify internal_vgui_support is intended to…
a1batross Jul 2, 2023
7cfbbdb
public: add definitions for PowerPC
a1batross Jul 2, 2023
a6d8054
engine: platform: sdl: check SDL version in Platform_Vibrate
a1batross Jul 2, 2023
685469a
mainui: upgrade
a1batross Jul 2, 2023
d05db75
Documentation: gameinfo: wording
a1batross Jul 4, 2023
2a11674
filesystem: expose archive mount generic function for Xar
a1batross Jul 5, 2023
6e6d82f
filesystem: expose a special flag for archive mounter to skip include…
a1batross Jul 5, 2023
d53a47d
public: allow matching anything in matchpattern
a1batross Jul 5, 2023
274f3b4
utils: xar: add new utility called Xar that helps interacting with Xa…
a1batross Jul 5, 2023
a65681d
engine: client: fix heap-buffer-overflow in remap when we switch mode…
a1batross Jul 17, 2023
e5bbaf9
filesystem: automatically fixup directory name case for base directories
a1batross Jul 17, 2023
17b5b38
engine: client: make ref params static so client.dll can save address…
a1batross Jul 17, 2023
fdab779
filesystem: allow to reference game libraries in different case
a1batross Jul 21, 2023
d8a6cc9
scripts: flatpak: disable LTO for Flatpak for now, it causes linker e…
a1batross Jul 21, 2023
c3571d9
scripts: flatpak: set correct bindir for flatpak installation
a1batross Jul 22, 2023
3bc6e7c
engine: common: fix warning about read-only cvar. In fact, we should …
a1batross Jul 22, 2023
07b7887
engine: client: ref_common: fix missing newline in Host_Error
a1batross Jul 22, 2023
d51da4f
Revert "filesystem: allow to reference game libraries in different case"
a1batross Jul 22, 2023
6695211
filesystem: try to fix case of library filename in FindLibrary
a1batross Jul 22, 2023
ac4f770
github: bump SDL2 version to 2.28.1
a1batross Jul 23, 2023
f794092
engine: remove czeror sequence parser
a1batross Jul 26, 2023
73c8a55
engine: soundlib: snd_wav: take FindNextChunk fixes from FTEQW
a1batross Aug 2, 2023
6609feb
engine: don't release DLL that wasn't loaded during settings.scr pars…
a1batross Aug 2, 2023
8520cf0
engine: client: initialize netadr_t structure in LAN games scan
a1batross Aug 2, 2023
9065111
engine: net_ws: fix printing multicast IPv6 address
a1batross Aug 2, 2023
ef1de85
engine: common: cvar: fix buffer overflow in Cvar_ValidateString
a1batross Aug 2, 2023
266bd57
engine: fix inverted check in DLL unloading in settings.scr parsing
a1batross Aug 2, 2023
8fe2238
engine: soundlib: missing newline in warning message about truncated …
a1batross Aug 5, 2023
f166a32
engine: server: fix buffer overflow in invalid Q_strncpy call
a1batross Aug 5, 2023
5211a1d
wscript: add stringop-overflow to our Werror list
a1batross Aug 5, 2023
85edcdf
filesystem: fix stringop-overflow
a1batross Aug 5, 2023
da3aa55
engine: client: cl_qparse: refactor quake baseline parser, so we don'…
a1batross Aug 7, 2023
f8fed5b
wscript: disable stringop-overflow for NSW to workaround buggy toolchain
a1batross Aug 7, 2023
963d25d
wscript: make stringop-overflow non-fatal
a1batross Aug 7, 2023
488971c
engine: server: pre-process string before passing it to PhysicAPI All…
a1batross Aug 7, 2023
d24ffad
wscript: add an option to request and accept any servers
a1batross Aug 8, 2023
b32ac60
engine: common: ipv6text: accept changes from upstream GameNetworking…
a1batross Aug 8, 2023
b6a4f56
engine: soundlib: fix slashes in Sound_GetApproxWavePlayLen, as it ca…
a1batross Aug 18, 2023
ba442bb
engine: soundlib: fix sizeof parameter in previous commit, I'm an idiot
a1batross Aug 18, 2023
0d45aef
ref: gl: only enable/disable texture units in fixed-function pipeline…
a1batross Aug 21, 2023
d0c1e40
engine: ref_api: remove dead XASH_TEXTURE4 definition
a1batross Aug 21, 2023
9766f2c
engine: soundlib: snd_mp3: fix extra-format-args
a1batross Aug 21, 2023
aa39d76
engine: server: use generic host pool for temporary string allocation…
a1batross Aug 29, 2023
4710e8c
engine: platform: win32: fix calculating RVAs for LLP64
a1batross Aug 29, 2023
e9adc48
engine: server: fix attempting to free pool instead of an allocated m…
a1batross Aug 30, 2023
3bdad95
engine: crashhandler: changed register names for NetBSD x86 (#1414)
Emru1 Aug 30, 2023
2fb2d34
engine: soundlib: mp3: fix check for Unicode in ID3v2.4 TXXX tag
a1batross Aug 30, 2023
82bfe0a
engine: client: don't write download notify outside of window
a1batross Aug 31, 2023
0caa939
engine: client: make unprefixed important userinfo cvars filterable, …
a1batross Sep 3, 2023
5c1195f
ref: gl: fix cl_righthand behaviour
Velaron Aug 30, 2023
b3917a7
some cleaner code
Velaron Aug 30, 2023
9ec9424
ref: gl: don't create cl_righthand cvar
Velaron Aug 30, 2023
8f007af
ref: gl: fix compile
a1batross Aug 31, 2023
fd9da66
waf: upgrade to latest waifu
a1batross Sep 12, 2023
f2c9f64
engine: network: fix incorrect usage of qboolean, when it should be n…
a1batross Sep 12, 2023
2ec3683
engine: client: do not check screenshots in base directory to guess t…
a1batross Sep 13, 2023
6378646
filesystem: VFileSystem009: just in case, always rewrite fs_api_t req…
a1batross Sep 13, 2023
b159430
wscript: fix RPATH usage on OSX (by @sofakng)
a1batross Sep 15, 2023
53e01f0
scripts: flatpak: upgrade to Freedesktop SDK 23.08
a1batross Sep 15, 2023
72e7924
Update port maintainer list (#1427)
sofakng Sep 17, 2023
3d6e0a1
Documentation: update ports list, remove old engine ports that has ne…
a1batross Sep 17, 2023
b9b7d20
ref: soft: do not register cl_righthand cvar
a1batross Sep 29, 2023
2da6477
mainui: update
a1batross Oct 2, 2023
fb3182b
engine: remove PORT_CLIENT, we should randomize client port by defaul…
a1batross Oct 5, 2023
9daf042
ref: restore missing PARM_TEX_MEMORY RenderAPI parameter
a1batross Oct 6, 2023
f34d6d1
engine: client: use physents for flashlight tracing, as GoldSrc does
a1batross Oct 7, 2023
dbcfe3b
engine: client: avoid unneeded comparisons in CL_UpdateFlashlight
a1batross Oct 9, 2023
23d79f7
engine: client: yet another BloodStream fix, normalize input velocity…
a1batross Oct 9, 2023
041dfd8
engine: client: console: remove unneeded return from Con_DrawConsoleLen
a1batross Oct 9, 2023
ca90b2c
engine: client: restore window maximized state after engine restart
a1batross Oct 9, 2023
18f5077
engine: client: add definitions for borderless fullscreen mode
a1batross Oct 10, 2023
c2c7c0e
engine: host: expose new -borderless flag in command line help
a1batross Oct 10, 2023
598e56c
engine: platform: pass desired window mode through R_ChangeDisplaySet…
a1batross Oct 10, 2023
701652f
engine: platform: sdl: support borderless mode, slight refactoring
a1batross Oct 10, 2023
6d99f70
engine: platform: dos: fix according to platform.h changes
a1batross Oct 10, 2023
4a45c46
engine: platform: linux: fix according to platform.h changes
a1batross Oct 10, 2023
2c6418a
mainui: update
a1batross Oct 10, 2023
d3aa3e2
engine: platform: sdl: fix qboolean to window_mode_t conversions
a1batross Oct 10, 2023
c262063
engine: platform: sdl: fix qboolean to window_mode_t conversions
a1batross Oct 10, 2023
e483016
engine: platform: sdl: grab input only in true fullscreen mode
a1batross Oct 11, 2023
e3e4515
ref_gl: remove complete useless macro, enable VBO under option
mittorn Oct 5, 2023
c590f93
ref: fix late registration of studio cvars (thanks, @mittorn)
a1batross Oct 14, 2023
f6df8f1
engine: client: let time flow in Xash demos
a1batross Oct 14, 2023
b0e9edd
utils: mdldec: smd.c: linear movement loss fix.
nekonomicon Oct 12, 2023
bee871b
utils: mdldec: qc.c: remove useless backward slashes from output.
nekonomicon Oct 14, 2023
4631e80
utils: mdldec: qc.c: always put $flags keyword with value.
nekonomicon Oct 14, 2023
2c129f0
utils: mdldec: qc.c: reorder output.
nekonomicon Oct 14, 2023
e2150f9
utils: mdldec: qc.c: put tabs where possible.
nekonomicon Oct 14, 2023
6791f1a
utils: mdldec: qc.c: put controller name instead of index for mouth c…
nekonomicon Oct 14, 2023
9c149e7
utils: mdldec: qc.c: calculate sequence group size.
nekonomicon Oct 14, 2023
fb35619
utils: mdldec: qc.c: put every texture name to separate line.
nekonomicon Oct 14, 2023
6824ab6
utils: mdldec: qc.c: add missing quotes.
nekonomicon Oct 14, 2023
9300d3a
utils: mdldec: qc.c: put every sequence property to separate line.
nekonomicon Oct 15, 2023
6d510bf
utils: mdldec: qc.c: add missing refence meshes count.
nekonomicon Oct 15, 2023
69ddd20
utils: mdldec: qc.c: avoid to use brackets with conclusions.
nekonomicon Oct 15, 2023
06f9711
utils: mdldec: smd.c: add leading zero to number in sequence filenames.
nekonomicon Oct 15, 2023
90ed8c4
public: isnan fix for when using GCC on IRIX
Xav101 Oct 22, 2023
9b615a9
engine: mod_bmodel: swap bytes in texinfo on big endian platforms
Xav101 Oct 22, 2023
ad734c4
engine: mod_bmodel: swap bytes in surface loader on big endian
Xav101 Oct 22, 2023
fd49452
engine: mod_bmodel: byte swap on big endian in marksurfaces loader
Xav101 Oct 22, 2023
50ce2aa
engine: mod_bmodel: byte swap leaves on big endian
Xav101 Oct 22, 2023
1476081
engine: mod_bmodel: byteswap nodes on big endian platforms
Xav101 Oct 22, 2023
41db6bd
engine: mod_bmodel: Byte swap in clipnodes loader on big endian. Serv…
Xav101 Oct 22, 2023
394cb9d
engine: incorporate code formatting suggestions from PR
Oct 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions .github/workflows/c-cpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ jobs:
fail-fast: false
matrix:
include:
# Linux build specifically want oldest Ubuntu as possible
# to be crossdistribution compatible, otherwise use ubuntu-latest
- os: ubuntu-20.04
targetos: linux
targetarch: amd64
Expand All @@ -34,10 +36,10 @@ jobs:
# targetos: motomagx
# targetarch: armv6

- os: ubuntu-20.04
- os: ubuntu-latest
targetos: nswitch
targetarch: arm64
- os: ubuntu-20.04
- os: ubuntu-latest
targetos: psvita
targetarch: armv7hf
- os: windows-latest
Expand All @@ -47,7 +49,7 @@ jobs:
targetos: win32
targetarch: i386
env:
SDL_VERSION: 2.26.2
SDL_VERSION: 2.28.1
GH_CPU_ARCH: ${{ matrix.targetarch }}
ANDROID_SDK_TOOLS_VER: 4333796
steps:
Expand Down Expand Up @@ -80,7 +82,7 @@ jobs:
with:
submodules: recursive
- name: Build flatpak (Compat.i386)
uses: FWGS/flatpak-github-actions/flatpak-builder@v5
uses: FWGS/flatpak-github-actions/flatpak-builder@v6.1
with:
bundle: ${{ matrix.app }}.flatpak
manifest-path: scripts/flatpak/${{ matrix.app }}.yml
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ Makefile.dep
ALL_BUILD.*
INSTALL.*
ZERO_CHECK.*
CMakeLists.txt

# Visual Studio
*.obj
Expand Down Expand Up @@ -333,3 +334,6 @@ __pycache__
.history/*
.cache/*
enc_temp_folder/

# KDevelop4
*.kdev4
2 changes: 1 addition & 1 deletion 3rdparty/gl-wes-v2
2 changes: 1 addition & 1 deletion 3rdparty/mainui
Submodule mainui updated 54 files
+3 −6 .gitignore
+0 −16 .travis.unused.xml
+2 −1 BaseMenu.cpp
+1 −1 CMakeLists.txt
+28 −0 README.md
+1 −1 WindowSystem.h
+0 −1 controls/BaseWindow.cpp
+1 −1 controls/Field.cpp
+5 −0 dictgen.py
+1 −1 font/BaseFontBackend.h
+3 −2 font/FontManager.cpp
+6 −0 menus/Credits.cpp
+26 −6 menus/Main.cpp
+9 −9 menus/PlayerSetup.cpp
+2 −0 menus/ServerBrowser.cpp
+31 −20 menus/VideoModes.cpp
+3 −0 menus/dynamic/ScriptMenu.cpp
+1 −1 miniutl
+0 −27 msvc6/compile.bat
+0 −12 msvc6/continious_upload.sh
+12 −0 sdk_includes/README.md
+328 −0 sdk_includes/common/bspfile.h
+105 −0 sdk_includes/common/cl_entity.h
+538 −0 sdk_includes/common/com_model.h
+25 −0 sdk_includes/common/con_nprint.h
+764 −0 sdk_includes/common/const.h
+49 −0 sdk_includes/common/cvardef.h
+188 −0 sdk_includes/common/entity_state.h
+25 −0 sdk_includes/common/entity_types.h
+47 −0 sdk_includes/common/event_args.h
+51 −0 sdk_includes/common/gameinfo.h
+18 −0 sdk_includes/common/kbutton.h
+95 −0 sdk_includes/common/mathlib.h
+76 −0 sdk_includes/common/netadr.h
+105 −0 sdk_includes/common/ref_params.h
+50 −0 sdk_includes/common/weaponinfo.h
+24 −0 sdk_includes/common/wrect.h
+195 −0 sdk_includes/common/xash3d_types.h
+44 −0 sdk_includes/copy.sh
+93 −0 sdk_includes/engine/custom.h
+186 −0 sdk_includes/engine/keydefs.h
+249 −0 sdk_includes/engine/menu_int.h
+97 −0 sdk_includes/engine/mobility_int.h
+20 −0 sdk_includes/pm_shared/pm_info.h
+261 −0 sdk_includes/public/build.h
+166 −0 sdk_includes/public/buildenums.h
+12 −10 translations/mainui_skeleton_everything.txt
+12 −10 translations/mainui_skeleton_nostringslst.txt
+3 −9 translations/mainui_skeleton_stripped.txt
+7 −0 vs2022/IMPORTANT_NOTE_FOR_MOD_DEVELOPER.txt
+31 −0 vs2022/mainui_cpp.sln
+279 −0 vs2022/mainui_cpp.vcxproj
+414 −0 vs2022/mainui_cpp.vcxproj.filters
+5 −2 wscript
2 changes: 1 addition & 1 deletion 3rdparty/nanogl
Submodule nanogl updated 2 files
+12 −0 .gitignore
+0 −15 CMakeLists.txt
2 changes: 1 addition & 1 deletion 3rdparty/vgui_support
Submodule vgui_support updated 1 files
+1 −1 wscript
112 changes: 112 additions & 0 deletions Documentation/gameinfo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# Game definition and information file

gameinfo.txt is an essential part of any Xash3D based game. It allows basic customization for games creators, like setting game title, DLL paths, etc.

This document defines gameinfo.txt syntax, supported keys and liblist.gam conversion rules for the latest version of the engine. Note for engine developers, keep this document in sync with an implementation.

## gameinfo.txt syntax

* gameinfo.txt is a simple list of keys and values, separated by newline.
* You can add single line comments using double slashes (//).
* Keys can accept integer, float, string or boolean values.
* Boolean keys use 0 as false and 1 as true value.
* To have spaces in string values, you must enclose them in double quotes. Then, to have double quotes, you must escape it with backslash, and to have a backslash you need to use double backslashes.

The example:
```
// this is a comment :)
// this is another comment
some_integer_key 123

this_is_float_key 13.37 // optional comment

enable_feature 1 // boolean, 1 to enable, 0 to disable

example_string_key string_value
example_spaces "string with spaces"
example_title "Fate\\Stay Night" // engine will parse it as Fate\Stay Night
```

## gameinfo.txt keys

This is a list of all gameinfo.txt keys supported by the engine. Be aware that the engine will silently skip all unrecognized keys.

| Key | Type | Default value | Description |
| ---------------- | ---------- | --------------- | ----------- |
| `ambient0` | string | Empty string | Automatic ambient sound |
| `ambient1` | string | Empty string | Automatic ambient sound |
| `ambient2` | string | Empty string | Automatic ambient sound |
| `ambient3` | string | Empty string | Automatic ambient sound |
| `basedir` | string | `valve` | Game base directory, used to share assets between games |
| `date` | string | Empty string | Game release date. Unused. |
| `dllpath` | string | `cl_dlls` | Game DLL path. Engine will search custom DLLs (client or menu, for example) in this directory, except `gamedll`, see below. |
| `fallback_dir` | string | Empty string | Additional game base directory |
| `gamedir` | string | Current gamedir | Game directory, ignored in FWGS, as game directory is defined by the game directory name |
| `gamedll` | string | `dlls/hl.dll` | Game server DLL for 32-bit x86 Windows (see LibraryNaming.md for details) |
| `gamemode` | string | Empty string | Game type. When set to `singleplayer_only` or `multiplayer_only` marks the game as SP or MP only respectively, hiding the option in game UI. Omitting this key or using custom values mark the game as both MP and SP compatible. |
| `icon` | string | `game.ico` | Game icon. Engine will automatically append .ico and may automatically switch to .tga icon as well |
| `max_beams` | integer | 128 | Beams limit, 64 min, 512 max |
| `max_edicts` | integer | 900 | Entities limit, 600 min, 8192 max (protocol limit). In FWGS, minimum is 64. |
| `max_particles` | integer | 4096 | Particles limit, 1024 min, 131072 max |
| `max_tempents` | integer | 500 | Temporary entities limit. 300 min, 2048 max |
| `mp_entity` | string | `info_player_deathmatch` | Entity used to mark maps as multiplayer |
| `mp_filter` | string | Empty string | When set, used to filter multiplayer maps instead of `mp_entity`.<br>If the map name starts with the same characters as this filter, it's considered a multiplayer map |
| `nomodels` | boolean | 0 | When set to 1, disallows changing player model in UI |
| `noskills` | boolean | 0 | When set to 1, disallows selection of game difficulty |
| `secure` | boolean | 0 | When set to 1, original Unkle Mike's engine will completely disable developer mode. FWGS ignores but preserves this value for compatibility. |
| `size` | integer | 0 | Game directory size in bytes, used in Change Game dialog only |
| `startmap` | string | `c0a0` | The name of the map used in new game |
| `sp_entity` | string | `info_player_start` | Entity used to mark map as single player. Used in map validation |
| `title` | string | `New Game` | Game title, used in window title, default server name, etc. |
| `trainmap` | string | `t0a0` | The name of the training map (Hazard Course) |
| `type` | string | Empty string | Game type, used in Change Game UI. |
| `url_info` | string | Empty string | Game homepage URL, used in Change Game UI |
| `url_update` | string | Empty string | Game updates URL, used in Settings UI |
| `version` | float | 1.0 | Game version, used in Change Game dialog and in server info |

## FWGS-specific gameinfo.txt keys

These strings are specific to Xash3D FWGS.

| Key | Type | Default value | Description |
| ----------------------- | ---------- | ------------------------ | ----------- |
| `autosave_aged_count` | integer | 2 | Auto saves limit used in saves rotation |
| `gamedll_linux` | string | Generated from `gamedll` | Game server DLL for 32-bit x86 Linux (see LibraryNaming.md for details) |
| `gamedll_osx` | string | Generated from `gamedll` | Game server DLL for 32-bit x86 macOS (see LibraryNaming.md for details) |
| `internal_vgui_support` | boolean | 0 | Only for programmers! Required to be set as 1 for PrimeXT!<br>When set to 1, the engine will not load vgui_support DLL, as VGUI support is done (or intentionally ignored) on the game side. |
| `render_picbutton_text` | boolean | 0 | When set to 1, the UI will not use prerendered `btns_main.bmp` and dynamically render them instead |
| `quicksave_aged_count` | integer | 2 | Quick saves limit used in saves rotation |

## Note on GoldSrc liblist.gam support

As Xash3D accidentally supports GoldSrc games, it also supports parsing liblist.gam.\
Xash3D will use this file if gameinfo.txt is absent, or if its modification timestamp is older than liblist.gam.

For game creators who plan supporting only Xash3D, using this file is not recommended.

The table below defines conversion rules from liblist.gam to gameinfo.txt. Some keys' interpretation does differ from `gameinfo.txt`, in this case a note will be left. If `liblist.gam` key isn't present in this table, it's ignored.

| `liblist.gam` key | `gameinfo.txt` key | Note |
| ----------------- | ------------------ | ---- |
| `edicts` | `max_edicts` | |
| `fallback_dir` | `fallback_dir` | |
| `game` | `title` | |
| `gamedir` | `gamedir` | |
| `gamedll` | `gamedll` | |
| `gamedll_linux` | `gamedll_linux` | |
| `gamedll_osx` | `gamedll_osx` | |
| `icon` | `icon` | |
| `mpentity` | `mp_entity` | |
| `mpfilter` | `mp_filter` | |
| `nomodels` | `nomodels` | |
| `secure` | `secure` | In GoldSrc it's used to mark the multiplayer game as anti-cheat enabled.<br>Original Xash3D misinterprets its value for disallowing console and developer mode.<br>FWGS ignores this key but preserves for compatibility. |
| `startmap` | `startmap` | |
| `size` | `size` | |
| `trainingmap` | `trainmap` | |
| `trainmap` | `trainmap` | |
| `type` | `type` & `gamemode`| In `liblist.gam` this key works as both `type` and `gamemode`.<br>If value is `singleplayer_only` or `multiplayer_only` the game is marked as SP or MP only, and `gameinfo.txt` type set to `Single` or `Multiplayer`.<br>Any custom value will mark the game as both SP and MP compatible, and type is set to whatever custom value. |
| `url_dl` | `url_update` | |
| `url_info` | `url_info` | |
| `version` | `version` | |


5 changes: 4 additions & 1 deletion Documentation/opensource-mods.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Mirrored on github - https://github.com/JoelTroch/am_src_rebirth
Mirrored on github - https://github.com/nekonomicon/BattleGrounds

## Bubblemod
Download page on official site - http://www.bubblemod.org/dl_default.php (dead link!)
Download page on official site(WM snapshot) - [http://www.bubblemod.org/dl_default.php](https://web.archive.org/web/20130717133158/http://www.bubblemod.org/dl_default.php)

Mirrored on github - https://github.com/HLSources/BubbleMod

Expand Down Expand Up @@ -85,6 +85,9 @@ Official gitlab repository - https://gitlab.com/Sockman/hltopdown
## Half-Life: Update
Official github repository - https://github.com/Fograin/hl-subsmod-ex

## Half-Life: Rally
Official gitlab repository - https://gitlab.com/hlrally/src

## Half-Life: Weapon Edition
Available on ModDB - https://www.moddb.com/mods/half-life-weapon-edition/downloads/half-life-weapon-edition-1508-alpha-open-src

Expand Down
28 changes: 11 additions & 17 deletions Documentation/ports.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,32 @@ Xash3D FWGS is intended to be easily ported to specific platform, however main i

This page is about merged ports to main source tree and responsible for it developers.

For porting guidelines, look here(TODO!)
For porting guidelines, look engine-porting-guide.md.

Status:
* **Supported**: active, confirmed to be fully functional.
* **Supported**: active, was confirmed to be fully functional.
* **In progress**: active, under development.
* **Incomplete**: not active, but some work was accepted to main repository before
* **Old Engine**: port was for old engine fork
* **Not maintained**: lack of human resources
* **Not merged**: was done in third-party fork, real status unknown
* **Deprecated**: not supported anymore

Table is sorted by status.
Table is sorted by status and platform.

| Platform | Status | Maintainer | Note
| -------- | ------ | ---------- | ----
| Windows | Supported | @a1batross, @SNMetamorph |
| Android | Supported | @Velaron |
| *BSD | Supported | @nekonomicon |
| GNU/Linux(x86, amd64, arm) | Supported | @a1batross, @mittorn |
| Android | Supported | @a1batross, @mittorn |
| MotoMAGX | Supported | @a1batross |
| GNU/Linux(elbrus) | Supported | @a1batross, @mittorn | Rare and eventual access to e2k machine
| Haiku | Supported | not maintained | Was added by #478 and #483
| DOS4GW | Supported | @mittorn |
| GNU/Linux(mipsel) | Supported | @mittorn |
| GNU/Linux | Supported | @a1batross, @mittorn |
| Haiku | Supported | not maintained | Was added by #478 and #483
| macOS | Supported | @sofakng |
| MotoMAGX | Supported | @a1batross |
| PSVita | Supported | @fgsfdsfgs |
| Switch | Supported | @fgsfdsfgs |
| Wii | In progress | Collaborative effort | [GitHub Repository](https://github.com/saucesaft/xash3d-wii)
| Windows | Supported | @a1batross, @SNMetamorph |
| PSP | In progress | @Crow_bar, @Velaron | [GitHub Repository](https://github.com/Crow-bar/xash3d-fwgs)
| Wii | In progress | Collaborative effort | [GitHub Repository](https://github.com/saucesaft/xash3d-wii)
| Emscripten | Old Engine | not maintained |
| Oculus Quest | Old Engine fork | @DrBeef | [GitHub Repository](https://github.com/DrBeef/Lambda1VR)
| PSVita | Old Engine fork | not maintained | [GitHub Repository](https://github.com/fgsfdsfgs/vitaXash3D)
| Switch | Old Engine fork | not maintained | [GitHub Repository](https://github.com/switchports/xash3d-switch)
| 3DS | Old Engine fork | not maintained | [GitHub Repository](https://github.com/masterfeizz/Xash3DS)
| macOS | Deprecated | not maintained | See GitHub issue #61
| Oculus Quest | Old Engine fork | @DrBeef | [GitHub Repository](https://github.com/DrBeef/Lambda1VR)
| iOS | Deprecated | not maintained | See GitHub issue #61
7 changes: 0 additions & 7 deletions common/backends.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,17 @@ GNU General Public License for more details.
// video backends (XASH_VIDEO)
#define VIDEO_NULL 0
#define VIDEO_SDL 1
#define VIDEO_ANDROID 2
#define VIDEO_FBDEV 3
#define VIDEO_DOS 4


// audio backends (XASH_SOUND)
#define SOUND_NULL 0
#define SOUND_SDL 1
#define SOUND_OPENSLES 2
#define SOUND_ALSA 3

// input (XASH_INPUT)
#define INPUT_NULL 0
#define INPUT_SDL 1
#define INPUT_ANDROID 2
#define INPUT_EVDEV 3

// timer (XASH_TIMER)
Expand All @@ -45,16 +41,13 @@ GNU General Public License for more details.
// messageboxes (XASH_MESSAGEBOX)
#define MSGBOX_STDERR 0
#define MSGBOX_SDL 1
#define MSGBOX_ANDROID 2
#define MSGBOX_WIN32 3
#define MSGBOX_NSWITCH 4


// library loading (XASH_LIB)
#define LIB_NULL 0
#define LIB_POSIX 1
#define LIB_WIN32 2
#define LIB_STATIC 3


#endif /* BACKENDS_H */
24 changes: 3 additions & 21 deletions common/defaults.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,26 +52,6 @@ SETUP BACKENDS DEFINITIONS
#endif
#endif // XASH_MESSAGEBOX
#endif
#elif XASH_ANDROID
// we are building for Android platform, use Android APIs
#ifndef XASH_VIDEO
#define XASH_VIDEO VIDEO_ANDROID
#endif // XASH_VIDEO

#ifndef XASH_INPUT
#define XASH_INPUT INPUT_ANDROID
#endif // XASH_INPUT

#ifndef XASH_SOUND
#define XASH_SOUND SOUND_OPENSLES
#endif // XASH_SOUND

#ifndef XASH_MESSAGEBOX
#define XASH_MESSAGEBOX MSGBOX_ANDROID
#endif // XASH_MESSAGEBOX

#define XASH_USE_EVDEV 1
#define XASH_DYNAMIC_DLADDR
#elif XASH_LINUX
// we are building for Linux without SDL2, can draw only to framebuffer yet
#ifndef XASH_VIDEO
Expand Down Expand Up @@ -171,6 +151,8 @@ Default build-depended cvar and constant values
#define DEFAULT_MODE_WIDTH 960
#define DEFAULT_MODE_HEIGHT 544
#define DEFAULT_ALLOWCONSOLE 1
#elif XASH_ANDROID
#define DEFAULT_TOUCH_ENABLE "1"
#elif XASH_MOBILE_PLATFORM
#define DEFAULT_TOUCH_ENABLE "1"
#define DEFAULT_M_IGNORE "1"
Expand Down Expand Up @@ -204,7 +186,7 @@ Default build-depended cvar and constant values
#endif // DEFAULT_ALLOWCONSOLE

#ifndef DEFAULT_FULLSCREEN
#define DEFAULT_FULLSCREEN 1
#define DEFAULT_FULLSCREEN "1" // must be a string
#endif // DEFAULT_FULLSCREEN

#endif // DEFAULTS_H
Loading