]> git.rm.cloudns.org Git - xonotic/darkplaces.git/log
xonotic/darkplaces.git
13 months agooff-switch cvar for dlcache unload on server/map change
Dr. Jaska [Fri, 3 Nov 2023 09:35:21 +0000 (09:35 +0000)]
off-switch cvar for dlcache unload on server/map change

13 months agoFix GCC 13 warns: ‘new_velocity[0]’ may be used uninitialized
bones_was_here [Fri, 27 Oct 2023 15:47:55 +0000 (01:47 +1000)]
Fix GCC 13 warns: ‘new_velocity[0]’ may be used uninitialized

Pretty sure this was a false positive, for it to happen `numplanes`
would have to be <= 0 in the loop which sets `new_velocity` which should
be impossible.  Declaring `numplanes` as unsigned placates the compiler,
and these ints should be unsigned anyway because they index an array.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
13 months agoWork around black texture bug on AMD's Windows driver
bones_was_here [Tue, 3 Oct 2023 14:46:10 +0000 (00:46 +1000)]
Work around black texture bug on AMD's Windows driver

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

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
13 months agoSys_Error(): don't leave a dead window covering the OS UI or crash dialog
bones_was_here [Tue, 3 Oct 2023 09:49:24 +0000 (19:49 +1000)]
Sys_Error(): don't leave a dead window covering the OS UI or crash dialog

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
13 months agoVID_Shutdown(): Delete OpenGL context
bones_was_here [Tue, 3 Oct 2023 09:31:22 +0000 (19:31 +1000)]
VID_Shutdown(): Delete OpenGL context

Destroying the window doesn't do this so for a cleaner vid_restart we need to.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
13 months agoVID_InitModeGL(): fix clear to black of new window
bones_was_here [Tue, 3 Oct 2023 08:32:04 +0000 (18:32 +1000)]
VID_InitModeGL(): fix clear to black of new window

The window was left with whatever was already in the framebuffer.
Also we can perform the clear a bit earlier.

Changes initial state of vid_activewindow to match the logic that sets
it during normal frames.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
13 months agoImplement OpenGL version checking, use it for occlusion queries
bones_was_here [Tue, 3 Oct 2023 02:36:16 +0000 (12:36 +1000)]
Implement OpenGL version checking, use it for occlusion queries

This allows DP to use core features added after 3.2 without crashing,
in this case query buffer objects.

In div0-stable GL_ARB_query_buffer_object was checked but that extension
was written against 4.3 and became part of core in 4.4 so we can just
check for 4.4.

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

Moves GL function pointer initialisation to its own function to support
a workaround for NVIDIA's opinion about GL profiles.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
13 months agoCleanup some legacy cruft in vid_sdl.c
bones_was_here [Sat, 7 Oct 2023 17:00:18 +0000 (03:00 +1000)]
Cleanup some legacy cruft in vid_sdl.c

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
13 months agoMove QC extension reporting out of video initialisation
bones_was_here [Tue, 3 Oct 2023 04:52:17 +0000 (14:52 +1000)]
Move QC extension reporting out of video initialisation

Once at startup is enough, no need to do this during vid_restart (etc).

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
13 months agoMerge PR 'Small fixes (indices out of bounds)'
bones_was_here [Sat, 28 Oct 2023 08:09:32 +0000 (18:09 +1000)]
Merge PR 'Small fixes (indices out of bounds)'

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

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
13 months agoMerge PR 'Fix some UB'
bones_was_here [Sat, 28 Oct 2023 08:02:33 +0000 (18:02 +1000)]
Merge PR 'Fix some UB'

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

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
13 months agoFix yet more UB. Provide explanatory comments.
notcancername [Mon, 31 Jul 2023 20:21:56 +0000 (22:21 +0200)]
Fix yet more UB. Provide explanatory comments.

Signed-off-by: notcancername <notcancername@protomail.com>
14 months agoDelete (broken) cmake submodule that somehow got in from my cmake branch
Cloudwalk [Thu, 12 Oct 2023 16:55:52 +0000 (12:55 -0400)]
Delete (broken) cmake submodule that somehow got in from my cmake branch

Signed-off-by: Cloudwalk <cloudwalk@icculus.org>
14 months agohost: Move host cvar exports to host.h that don't belong in darkplaces.h
Cloudwalk [Thu, 12 Oct 2023 16:44:55 +0000 (12:44 -0400)]
host: Move host cvar exports to host.h that don't belong in darkplaces.h

Signed-off-by: Cloudwalk <cloudwalk@icculus.org>
14 months ago.gitignore: Exclude *.obj and *.tlog. Remove build artifacts
Cloudwalk [Thu, 12 Oct 2023 16:42:21 +0000 (12:42 -0400)]
.gitignore: Exclude *.obj and *.tlog. Remove build artifacts

Signed-off-by: Cloudwalk <cloudwalk@icculus.org>
14 months agoMerge PR 'Fix a bug on FreeBSD caused by assuming that short reads are errors'
bones_was_here [Mon, 2 Oct 2023 04:19:44 +0000 (14:19 +1000)]
Merge PR 'Fix a bug on FreeBSD caused by assuming that short reads are errors'

This also enables files larger than 2GiB to be accessed on all platforms.

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

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
14 months agoFix a bug on FreeBSD caused by assuming that short reads are errors
cancername [Mon, 31 Jul 2023 19:40:31 +0000 (21:40 +0200)]
Fix a bug on FreeBSD caused by assuming that short reads are errors

Signed-off-by: notcancername <119271574+notcancername@users.noreply.github.com>
14 months agocvar: reset colours after printing values, clarify virtual/alias message
bones_was_here [Thu, 28 Sep 2023 09:04:12 +0000 (19:04 +1000)]
cvar: reset colours after printing values, clarify virtual/alias message

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
14 months agoMake `name` be a command or virtual cvar on a game-specific basis
bones_was_here [Thu, 28 Sep 2023 09:03:28 +0000 (19:03 +1000)]
Make `name` be a command or virtual cvar on a game-specific basis

This allows matching the client console behaviour of div0-stable in
games that want it.

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

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
15 months agocmd: inline Arg helper funcs
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>
15 months 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>
15 months 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>
15 months 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>
15 months 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>
15 months 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>
15 months 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>
15 months 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>
15 months 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
SV_Impact().
Fixes https://github.com/DarkPlacesEngine/darkplaces/issues/94

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
15 months 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>
15 months 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

16 months agoFix potential index out of bounds
Johan Mattsson [Sat, 12 Aug 2023 22:49:42 +0000 (00:49 +0200)]
Fix potential index out of bounds

16 months agoFix potential index out of bounds
Johan Mattsson [Sat, 12 Aug 2023 22:48:20 +0000 (00:48 +0200)]
Fix potential index out of bounds

16 months 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>
16 months agoFix some UB
cancername [Mon, 31 Jul 2023 19:37:15 +0000 (21:37 +0200)]
Fix some UB

caused by shifting such that the value becomes unrepresentable and
overflow respectively

16 months 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
console.

sv_lagreporting_always enables these for empty servers or singleplayer.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
16 months 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>
16 months 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>
16 months 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>
16 months 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>
16 months 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>
17 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
boilerplate...

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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()

17 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.

17 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
now.

17 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>
17 months agoUse qbool for some trace_s members, other tidying
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>
17 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>
17 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>
17 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
format.

The downtrace endpoint is now calculated after
sv_gameplayfix_droptofloorstartsolid_nudgetocorrect.

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>
17 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>
17 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>
17 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>
17 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

History:
This epsilon value was first added to the nudge distance in
31e7715cffcebfd400b8473f3b2d3dc80937fc5a
and was replaced with bbox expansion in
25c09ca585e81bf9eb236a339ae5dcd64f63b679

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>
17 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>
17 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>
17 months ago(wtf8) wrap 4-bytes-sequence detection in ifdef U32
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>
17 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>
17 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>
17 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>
17 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>
18 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>
19 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

19 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

19 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>
19 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>
19 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

20 months agoFix compilation on macOS
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>
20 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.

21 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

21 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

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

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
22 months agoImplement extension DP_QC_FINDBOX
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);
supports DP_QC_FINDCHAIN_TOFIELD

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

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
22 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>
22 months agoAdd cvars that disable linking of SOLID_NOT entities: [cl|sv]_areagrid_link_SOLID_NOT
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>
22 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
screen.

Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
22 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

Commits:
5ca6703d5f57ebe18c1fc1a97c646ba468c49442
871cfdae9e48274eacb720e2423b9d8b3818bee9

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>
22 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>
22 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>
22 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>
22 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>
22 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>
22 months agoRelease the mouse during loading screen
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>
23 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>
23 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>
23 months agoRemove the Xonotic +showscores kludge
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>
23 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>
23 months agoKeep sockets opened after first disconnect
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>
23 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>
23 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>
23 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>
23 months agoRefactor loading screen and fix it
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>
23 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>
23 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>
23 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>