5 hours agocmd: inline Arg helper funcs bones_was_here/cbuf_fixes master 146/head
bones_was_here [Mon, 25 Sep 2023 08:09:39 +0000 (18:09 +1000)]
cmd: inline Arg helper funcs

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
5 hours agocbuf: catch runaway command loops, respects -norunaway cmdline arg
bones_was_here [Mon, 25 Sep 2023 09:30:33 +0000 (19:30 +1000)]
cbuf: catch runaway command loops, respects -norunaway cmdline arg

Prevents DP from spinlocking permanently.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
5 hours agocbuf: prepend keybind commands instead of appending to skip waits
bones_was_here [Mon, 25 Sep 2023 09:32:26 +0000 (19:32 +1000)]
cbuf: prepend keybind commands instead of appending to skip waits

This prevents user inputs being delayed by `wait` commands that other
sources may have added to the buffer.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
5 hours agocbuf: fix a 1 frame delay of keybind inputs
bones_was_here [Mon, 25 Sep 2023 06:08:42 +0000 (16:08 +1000)]
cbuf: fix a 1 frame delay of keybind inputs

This was a regression (from div0-stable) introduced in the refactoring.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
5 hours agocbuf: use standard parsing and buffering of deferred strings
bones_was_here [Mon, 25 Sep 2023 08:02:29 +0000 (18:02 +1000)]
cbuf: use standard parsing and buffering of deferred strings

Fixes https://gitlab.com/xonotic/darkplaces/-/issues/377

Matches div0-stable in that the deferred string is not parsed until
execution time and is printed verbatim in the pending command list.

Also fixes unsafe linked list removal and removes its workaround.

Slightly improves timing precsion and PRVM_64 / 32 support.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
5 hours agocbuf: refactor and fix parsing of text blocks into the linked list
bones_was_here [Tue, 26 Sep 2023 04:40:22 +0000 (14:40 +1000)]
cbuf: refactor and fix parsing of text blocks into the linked list

Simplifies the parsing to a single loop with less state tracking.
Reorganises the code for readability.

Fixes https://gitlab.com/xonotic/darkplaces/-/issues/378

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
6 days agoFix occasional NaN sdev in server timing reports
bones_was_here [Tue, 19 Sep 2023 04:37:30 +0000 (14:37 +1000)]
Fix occasional NaN sdev in server timing reports

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
6 days agoAdd some physics-related comments
bones_was_here [Fri, 1 Sep 2023 09:36:36 +0000 (19:36 +1000)]
Add some physics-related comments

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
12 days agoSV_FlyMove(): defer SV_Impact() call until after ground detection
bones_was_here [Wed, 13 Sep 2023 20:30:31 +0000 (06:30 +1000)]
SV_FlyMove(): defer SV_Impact() call until after ground detection

Quake didn't use SV_PushEntity in SV_FlyMove() and id1 fiends depend on
the original behaviour of setting ONGROUND (etc) before calling
Fixes https://github.com/DarkPlacesEngine/darkplaces/issues/94

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
12 days agoRework handling of stuck entities in engine movetypes
bones_was_here [Wed, 13 Sep 2023 19:38:04 +0000 (05:38 +1000)]
Rework handling of stuck entities in engine movetypes

Avoids most false positives and unnecessary work.
Mentions likely code path and cvar deprecations.

Fixes nades ending up where they shouldn't, which looked like:
Unstuck entity 450 (classname "ogre_grenade") with offset 0.000000 0.000000 28.000000.

Allows certain entities to move while stuck in the world (see comments).
Fixes https://github.com/DarkPlacesEngine/darkplaces/issues/18

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
3 weeks agoAdd missing DP_QC_FINDCHAIN_TOFIELD declarations to CSQC defs
bones_was_here [Fri, 1 Sep 2023 10:30:51 +0000 (20:30 +1000)]
Add missing DP_QC_FINDCHAIN_TOFIELD declarations to CSQC defs

7 weeks agoFix mod_q1bsp_zero_hullsize_cutoff only applying to HLBSP in some cases
bones_was_here [Sat, 5 Aug 2023 08:20:44 +0000 (18:20 +1000)]
Fix mod_q1bsp_zero_hullsize_cutoff only applying to HLBSP in some cases

In 0dfd32e1e2bb2c1bd5e58b3202271c391be423de in one code path this
applied to Q1BSP and HLBSP, but the other code path was slightly
different and there it only applied to HLBSP.  Oops :)

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
8 weeks agoImprove server lag detection and reporting
bones_was_here [Sun, 30 Jul 2023 18:24:04 +0000 (04:24 +1000)]
Improve server lag detection and reporting

On a dedicated server, significant lag is reported to players (so they
know it wasn't the network or their machine).

Cvar sv_lagreporting_strict logs even slight lag that was "recovered" to

sv_lagreporting_always enables these for empty servers or singleplayer.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
8 weeks agoDeduct frame execution time from sleep time
bones_was_here [Sun, 30 Jul 2023 18:47:05 +0000 (04:47 +1000)]
Deduct frame execution time from sleep time

Fixes failure to sustain cl_maxfps/sys_ticrate when the system can
exceed it if unlimited, should improve frame pacing too.

Includes related refactoring. Actually this commit is mostly refactoring.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
8 weeks agoProperly reset server timers and perf stats after level change
bones_was_here [Sun, 30 Jul 2023 18:45:56 +0000 (04:45 +1000)]
Properly reset server timers and perf stats after level change

This prevents the server running "catchup" physics frames immediately
after level change (when sv_maxphysicsframesperserverframe > 1) and
makes accurate stats available almost immediately (all 0 before that).

Moves perf stats from persistent to temporary storage.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
8 weeks agoFix host.framecount
bones_was_here [Sat, 29 Jul 2023 10:36:21 +0000 (20:36 +1000)]
Fix host.framecount

It never incremented if sleep was called, and could have eventually
become negative.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
8 weeks agocurl: use much less conservative performance defaults
bones_was_here [Thu, 27 Jul 2023 09:22:21 +0000 (19:22 +1000)]
curl: use much less conservative performance defaults

Matches defaults used in Xonotic >= 0.8.2

Dedicated server throughput is still limited by ticrate to avoid a
reduction in frame pacing precision, see 025fbac31da7f654e296e20b3037b5ce88074f8b

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
8 weeks agoFix flags and naming of cvars needed by the dedicated server
bones_was_here [Thu, 27 Jul 2023 09:31:15 +0000 (19:31 +1000)]
Fix flags and naming of cvars needed by the dedicated server

The cl_curl* cvars also apply to the dedicated server so not
registering them in 3a58ad52e63635c93e95955f984fd6052156e56b broke HTTP.
These now have aliases for backwards compat (eg Xonotic, Nexuiz menus).

cl_maxphysicsframesperserverframe is server-specific and was also used
by the dedicated server for "catch up" if it got behind.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agostrcat(): update QC defs to match implementation
bones_was_here [Sat, 22 Jul 2023 09:27:29 +0000 (19:27 +1000)]
strcat(): update QC defs to match implementation

Xonotic was defining strcat1n to allow single-arg cases without

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agocheckextension(): check libcurl is loaded before returning it's available
bones_was_here [Sat, 22 Jul 2023 06:36:14 +0000 (16:36 +1000)]
checkextension(): check libcurl is loaded before returning it's available

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agoFix flags and naming of Q3BSP curve collision cvars, related tidying
bones_was_here [Sat, 22 Jul 2023 06:12:52 +0000 (16:12 +1000)]
Fix flags and naming of Q3BSP curve collision cvars, related tidying

r_subdivisions_collision* were marked as client-only, so not registering
them in the dedicated server in 3a58ad52e63635c93e95955f984fd6052156e56b
broke Q3BSP curve collisions.  Renamed to mod_q3bsp_curves_subdivisions*
for consistency.

Removed 3 obsolete mod_q3bsp cvars, moved r_fxaa to gl_rmain.c

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agoAdd some missing csprogs defs
bones_was_here [Fri, 21 Jul 2023 08:33:23 +0000 (18:33 +1000)]
Add some missing csprogs defs

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agomod() builtin: match gmqcc and fteqw
bones_was_here [Fri, 21 Jul 2023 08:34:28 +0000 (18:34 +1000)]
mod() builtin: match gmqcc and fteqw

Also catch div0, he escaped again

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agoAdd cvar mod_q1bsp_zero_hullsize_cutoff for games using "big" projectiles on Q1BSP
bones_was_here [Fri, 21 Jul 2023 08:28:04 +0000 (18:28 +1000)]
Add cvar mod_q1bsp_zero_hullsize_cutoff for games using "big" projectiles on Q1BSP

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agoMerge MR 'Fix inability to access non-ascii path under Windows with WTF-8'
bones_was_here [Fri, 21 Jul 2023 08:38:12 +0000 (08:38 +0000)]
Merge MR 'Fix inability to access non-ascii path under Windows with WTF-8'

See https://gitlab.com/xonotic/darkplaces/-/merge_requests/142

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agodedicated server: don't call CL_UpdateScreen() and SCR_BeginLoadingPlaque()
bones_was_here [Tue, 18 Jul 2023 03:39:47 +0000 (13:39 +1000)]
dedicated server: don't call CL_UpdateScreen() and SCR_BeginLoadingPlaque()

2 months agodedicated server: don't register client-only cvars
bones_was_here [Mon, 17 Jul 2023 15:26:12 +0000 (01:26 +1000)]
dedicated server: don't register client-only cvars

Fixes random client cvars like r_trippy and cl_netpacketloss_send
appearing in the server.

Adds a warn (instead of crashing) for if we try to set an unregistered
engine cvar somewhere.

2 months agomod_bsp_portalize: remove from dedicated server, update description
bones_was_here [Mon, 17 Jul 2023 09:45:23 +0000 (19:45 +1000)]
mod_bsp_portalize: remove from dedicated server, update description

sv_cullentities_portal was removed in
d3b158411b1d81181e05f750d9a7b0b2268438e2 so the server has no use for it

2 months agoMerge MR 'Implement DP_QC_NUDGEOUTOFSOLID extension, fix Quake item bugs' into 'master'
bones_was_here [Sat, 15 Jul 2023 12:33:21 +0000 (12:33 +0000)]
Merge MR 'Implement DP_QC_NUDGEOUTOFSOLID extension, fix Quake item bugs' into 'master'

See merge request https://gitlab.com/xonotic/darkplaces/-/merge_requests/144

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agoUse qbool for some trace_s members, other tidying 144/head
bones_was_here [Sat, 15 Jul 2023 12:28:42 +0000 (22:28 +1000)]
Use qbool for some trace_s members, other tidying

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agoImplement DP_QC_NUDGEOUTOFSOLID extension
bones_was_here [Sat, 15 Jul 2023 12:28:37 +0000 (22:28 +1000)]
Implement DP_QC_NUDGEOUTOFSOLID extension

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agoQ1BSP: Fix TraceBox failing to move a bbox out of solid
bones_was_here [Sat, 15 Jul 2023 12:28:32 +0000 (22:28 +1000)]
Q1BSP: Fix TraceBox failing to move a bbox out of solid

Fixes https://github.com/DarkPlacesEngine/darkplaces/issues/85

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agodroptofloor(): refactor and use correct conditions for each BSP format
bones_was_here [Sat, 15 Jul 2023 12:28:27 +0000 (22:28 +1000)]
droptofloor(): refactor and use correct conditions for each BSP format

Behaviour changes:

Although startsolid is used by Q3 and Q2, it's too strict for Quake
which used allsolid, so we now use the correct conditions for each BSP

The downtrace endpoint is now calculated after

The downtrace endpoint is now offset when using the
sv_gameplayfix_droptofloorstartsolid fallback path, otherwise it would
trace a diagonal line for entities whose origin is not horizontally centred
in their bbox.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agodroptofloor(): fix collisions between entities, including on id1 maps
bones_was_here [Sat, 15 Jul 2023 12:28:23 +0000 (22:28 +1000)]
droptofloor(): fix collisions between entities, including on id1 maps

The presence of a monster bbox shouldn't cause a health to be considered
"in solid".

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agoAdd prefix to VM_Warning indicating which VM it came from
bones_was_here [Sat, 15 Jul 2023 12:28:18 +0000 (22:28 +1000)]
Add prefix to VM_Warning indicating which VM it came from

A few messages include this but many don't, and in future there will be
less functions with SV or CL in their name.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agodroptofloor(): add/improve warnings for badly placed entities
bones_was_here [Sat, 15 Jul 2023 12:27:48 +0000 (22:27 +1000)]
droptofloor(): add/improve warnings for badly placed entities

In the past, sv_gameplayfix_droptofloorstartsolid and
sv_gameplayfix_droptofloorstartsolid_nudgetocorrect were enabled by
default when playing Quake, which seems to have led to some maps
depending on them.

These need to be off by default in Quake to avoid gameplay changes,
but we can at least warn people about map entity issues.

See: 34e819a626f6a7ff2ad190a8e7d42e38ca8cef0e

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agoNudgeOutOfSolid: fix "random" failures on slightly inclined planes
bones_was_here [Sat, 15 Jul 2023 12:27:42 +0000 (22:27 +1000)]
NudgeOutOfSolid: fix "random" failures on slightly inclined planes

This epsilon value was first added to the nudge distance in
and was replaced with bbox expansion in

With the expansion approach we need to compare to separation to make
"good location" detection reliable, partly to avoid float precision
problems, partly to avoid compatibility problems with normal TraceBox.
For example: we drop an entity to floor successfully with TraceBox, but
then NudgeOutOfSolid decides it's in solid.

Also updated the startsolid conditions to suit the 2-pass approach.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agoNudgeOutOfSolid: add a wasn't-stuck result
bones_was_here [Sat, 15 Jul 2023 12:27:31 +0000 (22:27 +1000)]
NudgeOutOfSolid: add a wasn't-stuck result

It can be handy for calling code to know if the entity was initially
stuck (mainly for warnings).

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months agoMove SV_NudgeOutOfSolid() into a common namespace and unit
bones_was_here [Sat, 15 Jul 2023 12:27:09 +0000 (22:27 +1000)]
Move SV_NudgeOutOfSolid() into a common namespace and unit

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
2 months ago(wtf8) wrap 4-bytes-sequence detection in ifdef U32 142/head
NaitLee [Mon, 10 Jul 2023 14:15:04 +0000 (22:15 +0800)]
(wtf8) wrap 4-bytes-sequence detection in ifdef U32

Signed-off-by: NaitLee <naitli@foxmail.com>
2 months agorename and add comments for wtf8 macro flags
NaitLee [Mon, 10 Jul 2023 14:03:07 +0000 (22:03 +0800)]
rename and add comments for wtf8 macro flags

Signed-off-by: NaitLee <naitli@foxmail.com>
2 months agouse tabs for wtf8 code indent
NaitLee [Mon, 10 Jul 2023 13:31:08 +0000 (21:31 +0800)]
use tabs for wtf8 code indent

Signed-off-by: NaitLee <naitli@foxmail.com>
2 months ago(non-ascii path) fix an Win32 API annotation, fix "mygames" folder
NaitLee [Mon, 10 Jul 2023 12:06:32 +0000 (20:06 +0800)]
(non-ascii path) fix an Win32 API annotation, fix "mygames" folder

Signed-off-by: NaitLee <naitli@foxmail.com>
2 months agoFix inability to access non-ascii path under Windows with WTF-8
NaitLee [Mon, 10 Jul 2023 11:14:00 +0000 (19:14 +0800)]
Fix inability to access non-ascii path under Windows with WTF-8

Signed-off-by: NaitLee <naitli@foxmail.com>
3 months agoDisambiguate WriteDest warning
terencehill [Sun, 4 Jun 2023 08:40:49 +0000 (10:40 +0200)]
Disambiguate WriteDest warning

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
4 months agoClarify behaviour of random() builtin
bones_was_here [Sun, 21 May 2023 01:29:48 +0000 (11:29 +1000)]
Clarify behaviour of random() builtin

4 months agoDeclare DP_QC_WHICHPACK in menudefs.qc and csprogsdefs.qc
bones_was_here [Fri, 19 May 2023 10:07:14 +0000 (20:07 +1000)]
Declare DP_QC_WHICHPACK in menudefs.qc and csprogsdefs.qc

It was only declared in dpextensions.qc

4 months agoREADME.md: add badge for #darkplaces:matrix.org chat link
bones_was_here [Tue, 9 May 2023 17:21:27 +0000 (03:21 +1000)]
README.md: add badge for #darkplaces:matrix.org chat link

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
4 months agoImprove x86 detection to fix compiler errors on other architectures
bones_was_here [Sun, 30 Apr 2023 09:16:03 +0000 (19:16 +1000)]
Improve x86 detection to fix compiler errors on other architectures

Also some related minor makefile cleanup.

Closes https://gitlab.com/xonotic/darkplaces/-/issues/382

See also: 1244b3ab0853e8738c8f5e5b617e8d8f25d4eca4

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
4 months agoMerge branch 'kiwixz/macos_compile' into 'master'
bones_was_here [Sat, 29 Apr 2023 08:17:57 +0000 (08:17 +0000)]
Merge branch 'kiwixz/macos_compile' into 'master'

Fix compilation on macOS

See merge request xonotic/darkplaces!140

Fixes https://github.com/DarkPlacesEngine/darkplaces/issues/79

5 months agoFix compilation on macOS 140/head
kiwixz [Tue, 11 Apr 2023 18:07:46 +0000 (20:07 +0200)]
Fix compilation on macOS

It has been broken since 2a97ec851bd607510e33148335fc61d51e7138cf.

Signed-off-by: kiwixz <kiwixz@outlook.com>
5 months agoUpdate compiler options, fixing obscure bug
bones_was_here [Sun, 2 Apr 2023 16:18:40 +0000 (02:18 +1000)]
Update compiler options, fixing obscure bug

Added -mno-avx to avoid QC bugs on (at least) haswell and skylake targets.

Removed -fno-signaling-nans as clang doesn't support it and spams warns,
and in GCC it's the default.

Removed -fno-rounding-math as this is also the default.

6 months agofs: Use unsigned short for filename size
Cloudwalk [Fri, 24 Mar 2023 13:54:31 +0000 (09:54 -0400)]
fs: Use unsigned short for filename size

Also remove namesize < 0 check as this is no longer possible

6 months agofs: Use unsigned short for extra field and file comment lengths
Cloudwalk [Fri, 24 Mar 2023 12:43:00 +0000 (08:43 -0400)]
fs: Use unsigned short for extra field and file comment lengths

7 months agoFix DP_QC_FINDCHAIN_TOFIELD errors
bones_was_here [Fri, 24 Feb 2023 19:04:43 +0000 (05:04 +1000)]

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
7 months agoImplement extension DP_QC_FINDBOX 132/head
bones_was_here [Fri, 24 Feb 2023 18:53:08 +0000 (04:53 +1000)]
Implement extension DP_QC_FINDBOX

Returns a chain of entities that are touching a box (a simpler findradius);

Implements https://gitlab.com/xonotic/darkplaces/-/issues/373

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
7 months agoFix COLLISIONPARANOID build errors and warns
bones_was_here [Thu, 23 Feb 2023 10:59:16 +0000 (20:59 +1000)]
Fix COLLISIONPARANOID build errors and warns

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
7 months agoAdd cvars that disable linking of SOLID_NOT entities: [cl|sv]_areagrid_link_SOLID_NOT 131/head
bones_was_here [Tue, 21 Feb 2023 16:22:37 +0000 (02:22 +1000)]
Add cvars that disable linking of SOLID_NOT entities: [cl|sv]_areagrid_link_SOLID_NOT

This also removes the partial solution added in b1d6f1dfb96bedba50fbe394ca3f0c710f99381b https://gitlab.com/xonotic/darkplaces/-/merge_requests/78

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
7 months agoOptimise bindable unicode codepoint range
bones_was_here [Sun, 5 Feb 2023 11:12:46 +0000 (21:12 +1000)]
Optimise bindable unicode codepoint range

This improves FPS on (specifically) the Xonotic key bindings menu

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
7 months agoMerge PR 'Fixed two keyboard bugs'
bones_was_here [Sun, 5 Feb 2023 11:05:52 +0000 (21:05 +1000)]
Merge PR 'Fixed two keyboard bugs'

See https://github.com/DarkPlacesEngine/darkplaces/pull/68


Fixes https://gitlab.com/xonotic/darkplaces/-/issues/46
Fixes https://gitlab.com/xonotic/darkplaces/-/issues/51
Fixes https://gitlab.com/xonotic/darkplaces/-/issues/60
Fixes https://gitlab.com/xonotic/darkplaces/-/issues/147

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
7 months agoAdd cvar sv_legacy_bbox_expand for disabling Quake entity bbox expansion
bones_was_here [Fri, 3 Feb 2023 04:51:14 +0000 (14:51 +1000)]
Add cvar sv_legacy_bbox_expand for disabling Quake entity bbox expansion

This avoids obscure bugs and awkward workarounds especially with CSQC player prediction.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
7 months agoFix GCC 12 warns: comparison will always evaluate as true
bones_was_here [Mon, 30 Jan 2023 21:21:25 +0000 (07:21 +1000)]
Fix GCC 12 warns: comparison will always evaluate as true

Fixes https://github.com/DarkPlacesEngine/darkplaces/issues/55

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
7 months agoSimplify VID_SetMouse() calling logic
bones_was_here [Mon, 30 Jan 2023 20:01:16 +0000 (06:01 +1000)]
Simplify VID_SetMouse() calling logic

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
7 months agorefine edge cases handling to keynums/keystrings,
NaitLee [Mon, 30 Jan 2023 18:14:58 +0000 (02:14 +0800)]
refine edge cases handling to keynums/keystrings,
use the new constant `TINYSTR_LEN` in place of `sizeof(tinystr)` leftovers

Signed-off-by: NaitLee <naitli@foxmail.com>
7 months agoFixed two keyboard bugs:
NaitLee [Sun, 29 Jan 2023 14:09:37 +0000 (22:09 +0800)]
Fixed two keyboard bugs:
Fixed inability to bind non-ascii keys;
Fixed only the first character being input when using an Input Method

Signed-off-by: NaitLee <naitli@foxmail.com>
7 months agoRelease the mouse during loading screen 138/head
kiwixz [Sat, 28 Jan 2023 14:34:38 +0000 (15:34 +0100)]
Release the mouse during loading screen

Signed-off-by: kiwixz <kiwixz@outlook.com>
8 months agoMerge MR 'Reinstate the ability to override engine commands with QC commands'
bones_was_here [Tue, 24 Jan 2023 14:49:33 +0000 (00:49 +1000)]
Merge MR 'Reinstate the ability to override engine commands with QC commands'

See https://gitlab.com/xonotic/darkplaces/-/merge_requests/136

Fixes https://github.com/DarkPlacesEngine/darkplaces/issues/64

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
8 months agoCombine NetConn_UpdateSockets_Client() and NetConn_cl_netport_Callback()
bones_was_here [Tue, 24 Jan 2023 01:45:32 +0000 (11:45 +1000)]
Combine NetConn_UpdateSockets_Client() and NetConn_cl_netport_Callback()

These blocks must run together to avoid bug https://gitlab.com/xonotic/darkplaces/-/issues/376
Also, after a057e4757b55a90cbcdc287b3fdf54ccc2682315 the only
NetConn_UpdateSockets_Client() call site was in NetConn_cl_netport_Callback().

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
8 months agoRemove the Xonotic +showscores kludge 136/head
bones_was_here [Tue, 24 Jan 2023 00:11:55 +0000 (10:11 +1000)]
Remove the Xonotic +showscores kludge

Fixes https://github.com/DarkPlacesEngine/darkplaces/issues/64

See also: https://gitlab.com/xonotic/xonotic-data.pk3dir/-/merge_requests/1128
and 3912e78a6047f2c45b3ff4967df7a68ad4e1b994

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
8 months agoReimplement the ability to override engine commands with QC commands
bones_was_here [Tue, 24 Jan 2023 00:11:40 +0000 (10:11 +1000)]
Reimplement the ability to override engine commands with QC commands

This was working in div0-stable and was removed in 46acef5491629d06eddb8e78ed01e50b175d2bd8

Due to previous improvements by LH & Cloudwalk, the behaviour is now better:
the new QC command appears in the console in addition to the engine one,
the new command takes priority and what's going on is clearer.
When the CSQC VM shuts down, the registered command is removed.

Also this time we can has documentation.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
8 months agoKeep sockets opened after first disconnect 137/head
kiwixz [Mon, 23 Jan 2023 21:01:37 +0000 (22:01 +0100)]
Keep sockets opened after first disconnect

Signed-off-by: kiwixz <kiwixz@outlook.com>
8 months agoImprove client/listen curl transfer speed at low FPS
bones_was_here [Sat, 21 Jan 2023 01:49:27 +0000 (11:49 +1000)]
Improve client/listen curl transfer speed at low FPS

This is a huge boost for some libcurl versions, eg 7.74 in Debian 11

Fixes https://gitlab.com/xonotic/darkplaces/-/issues/375

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
8 months agoAdd cvar scr_conheight and make loading progress visible under fullscreen console
bones_was_here [Fri, 20 Jan 2023 06:56:42 +0000 (16:56 +1000)]
Add cvar scr_conheight and make loading progress visible under fullscreen console

Also updates related cvar descriptions and increases default
scr_loadingscreen_maxfps to 20, 10 just looked too janky.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
8 months agoMerge MR 'Refactor loading screen and fix it'
bones_was_here [Fri, 20 Jan 2023 03:08:50 +0000 (03:08 +0000)]
Merge MR 'Refactor loading screen and fix it'

See https://gitlab.com/xonotic/darkplaces/-/merge_requests/135

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
8 months agoRefactor loading screen and fix it 135/head
kiwixz [Wed, 18 Jan 2023 22:05:24 +0000 (23:05 +0100)]
Refactor loading screen and fix it

Signed-off-by: kiwixz <kiwixz@outlook.com>
8 months agoUse correct droptofloor distance for each Quake map format
bones_was_here [Tue, 17 Jan 2023 05:09:04 +0000 (15:09 +1000)]
Use correct droptofloor distance for each Quake map format

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
8 months agoRemove code duplication in messagemodes and commandmode
bones_was_here [Sat, 14 Jan 2023 08:40:37 +0000 (18:40 +1000)]
Remove code duplication in messagemodes and commandmode

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
8 months agoDisable messagemode and messagemode2 during demo playback
bones_was_here [Sat, 14 Jan 2023 07:49:43 +0000 (17:49 +1000)]
Disable messagemode and messagemode2 during demo playback

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
8 months agoUnload dlcache packs when changing map or disconnecting 134/head
bones_was_here [Thu, 12 Jan 2023 23:39:44 +0000 (09:39 +1000)]
Unload dlcache packs when changing map or disconnecting

Prevents content from the previous server and/or map from interfering with the next

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
10 months agoMinor sv_cullentities refactoring
bones_was_here [Mon, 7 Nov 2022 09:39:13 +0000 (19:39 +1000)]
Minor sv_cullentities refactoring

10 months agoImprove reliability and documentation of portal camera eyes
bones_was_here [Mon, 7 Nov 2022 09:23:16 +0000 (19:23 +1000)]
Improve reliability and documentation of portal camera eyes

Not all traces will succeed so we need to add the eye if a trace
succeeded within some recent time period, instead of only adding it when
a trace succeeded in the current frame.

Fixes https://gitlab.com/xonotic/darkplaces/-/issues/207
Fixes https://gitlab.com/xonotic/xonotic-data.pk3dir/-/issues/1596

12 months agoMerge MR 'Adding the natural curve mouse acceleration'
bones_was_here [Sat, 24 Sep 2022 08:00:59 +0000 (08:00 +0000)]
Merge MR 'Adding the natural curve mouse acceleration'

branch 'natural_acceleration'

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
12 months agoAdding the natural curve mouse acceleration
Francisco Parra PĂ©rez [Sat, 24 Sep 2022 08:00:57 +0000 (08:00 +0000)]
Adding the natural curve mouse acceleration

Signed-off-by: Draena <franparpe@disroot.org>
12 months agoREADME.md: add links to CREDITS.md and CONTRIBUTING.md
bones_was_here [Fri, 23 Sep 2022 16:31:25 +0000 (02:31 +1000)]
README.md: add links to CREDITS.md and CONTRIBUTING.md

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
12 months agoFix DEBUGGL warns & checking logic in R_Mesh_CreateFramebufferObject
bones_was_here [Fri, 22 Jul 2022 02:58:17 +0000 (12:58 +1000)]
Fix DEBUGGL warns & checking logic in R_Mesh_CreateFramebufferObject

Signed-off-by: bones_was_here <bones_was_here@xa.org.au>
12 months agoImprove DEBUGGL
bones_was_here [Thu, 21 Jul 2022 23:49:16 +0000 (09:49 +1000)]

glGetError() must be called in a loop to retrieve and reset
multiple error flags.

Signed-off-by: bones_was_here <bones_was_here@xa.org.au>
12 months agoglquake.h: fix wrapper #ifndef
bones_was_here [Thu, 21 Jul 2022 20:27:58 +0000 (06:27 +1000)]
glquake.h: fix wrapper #ifndef

Signed-off-by: bones_was_here <bones_was_here@xa.org.au>
12 months agoFix GCC 11 warns: r_shadow.c misleading indentation, also remove duplicated code
bones_was_here [Sat, 11 Jun 2022 06:41:40 +0000 (16:41 +1000)]
Fix GCC 11 warns: r_shadow.c misleading indentation, also remove duplicated code

Signed-off-by: bones_was_here <bones_was_here@xa.org.au>
12 months agoFix GCC 11 warns: use uninitialized in R_CanSeeBox
bones_was_here [Sat, 11 Jun 2022 05:16:30 +0000 (15:16 +1000)]
Fix GCC 11 warns: use uninitialized in R_CanSeeBox

Introduced in 8ab339588b127e88e27bfa08f6eccbf9400b51f9

Signed-off-by: bones_was_here <bones_was_here@xa.org.au>
12 months agoFix GCC 11 warns: Mod_INTERQUAKEMODEL_Load misleading indentation
bones_was_here [Fri, 10 Jun 2022 23:21:35 +0000 (09:21 +1000)]
Fix GCC 11 warns: Mod_INTERQUAKEMODEL_Load misleading indentation

Signed-off-by: bones_was_here <bones_was_here@xa.org.au>
12 months agoFix GCC 11 warns: Con_Shutdown misleading indentation
bones_was_here [Fri, 10 Jun 2022 23:11:29 +0000 (09:11 +1000)]
Fix GCC 11 warns: Con_Shutdown misleading indentation

Signed-off-by: bones_was_here <bones_was_here@xa.org.au>
12 months agoFix GCC 11 warns: Matrix4x4_FromArrayFloatGL overread
bones_was_here [Fri, 10 Jun 2022 22:33:57 +0000 (08:33 +1000)]
Fix GCC 11 warns: Matrix4x4_FromArrayFloatGL overread

Signed-off-by: bones_was_here <bones_was_here@xa.org.au>
12 months agoFix GCC 11 warns: Matrix4x4_ToArray12FloatGL overflow
bones_was_here [Fri, 10 Jun 2022 03:48:46 +0000 (13:48 +1000)]
Fix GCC 11 warns: Matrix4x4_ToArray12FloatGL overflow

Signed-off-by: bones_was_here <bones_was_here@xa.org.au>
12 months agoFix GCC 11 warns: Matrix4x4_FromArrayDoubleD3D overread
bones_was_here [Fri, 10 Jun 2022 03:24:09 +0000 (13:24 +1000)]
Fix GCC 11 warns: Matrix4x4_FromArrayDoubleD3D overread

Signed-off-by: bones_was_here <bones_was_here@xa.org.au>
12 months agoFix GCC 11 warns: mismatched prototype args
bones_was_here [Mon, 6 Jun 2022 00:48:51 +0000 (10:48 +1000)]
Fix GCC 11 warns: mismatched prototype args

Signed-off-by: bones_was_here <bones_was_here@xa.org.au>
13 months agoCheck macOS version < 12 to use old function name
Cloudwalk [Tue, 23 Aug 2022 19:05:08 +0000 (15:05 -0400)]
Check macOS version < 12 to use old function name

Fixes building on macOS < 12

16 months agoOptimize VectorNormalize macros by not doing the sqrt on 0 length, this also means...
Ashley 'LadyHavoc' Hale [Tue, 10 May 2022 20:31:29 +0000 (13:31 -0700)]
Optimize VectorNormalize macros by not doing the sqrt on 0 length, this also means it should be more friendly to the CPU intrinsics for 1/sqrt in a single instruction

16 months agoResolved .gitignore conflict
Ashley 'LadyHavoc' Hale [Mon, 2 May 2022 07:09:15 +0000 (00:09 -0700)]
Resolved .gitignore conflict

16 months agoUpdate SDL2.nuget package to 2.0.22, add some more things to .gitignore.
Ashley 'LadyHavoc' Hale [Mon, 2 May 2022 07:07:14 +0000 (00:07 -0700)]
Update SDL2.nuget package to 2.0.22, add some more things to .gitignore.

16 months agoAdded convex.[ch] to compute brush shapes from point clouds for use in experimental...
Ashley 'LadyHavoc' Hale [Mon, 2 May 2022 07:05:28 +0000 (00:05 -0700)]
Added convex.[ch] to compute brush shapes from point clouds for use in experimental visibility code I'm tinkering with