T [Mon, 24 Mar 2025 22:45:07 +0000 (23:45 +0100)]
Revert strafe v_flipped changes: something already flips it
T [Mon, 24 Mar 2025 22:09:22 +0000 (23:09 +0100)]
Flip in CL_* instead so it works in case v_flipped is toggled while holding down +left or +right
T [Mon, 24 Mar 2025 21:45:49 +0000 (22:45 +0100)]
Flip turn left and turn right inputs on v_flipped 1
James O'Neill [Tue, 4 Feb 2025 21:26:33 +0000 (06:26 +0900)]
Remove Python installation from wasm-release job (#230)
Remove the Python installation step from the wasm-release pipeline job
so that it can actually get to the engine compilation.
Rudolf Polzer [Sun, 5 Jan 2025 01:33:14 +0000 (20:33 -0500)]
Make division by 0 return NAN when output is a floating point type, not 0.
For now the division by zero warning is kept.
The old behavior is behind a cvar `prvm_gameplayfix_div0is0` to enable in
case this causes any trouble for anyone.
Fixed #240.
Rudolf Polzer [Mon, 6 Jan 2025 23:49:10 +0000 (18:49 -0500)]
DIV_VF: make it slightly more correct (but slower).
We really should divide three times separately than compute the
reciprocal and multiply by that three times.
The latter allows two roundoff errors, the former only one.
Rudolf Polzer [Sat, 4 Jan 2025 12:50:06 +0000 (07:50 -0500)]
Fix error format strings.
Rudolf Polzer [Sat, 4 Jan 2025 12:43:21 +0000 (07:43 -0500)]
Remove some now unnecessary casts.
Rudolf Polzer [Fri, 3 Jan 2025 23:28:23 +0000 (18:28 -0500)]
OP_DIV_*: add division by zero checks.
Now all the OP_DIV operations emit a warning and proceed on division by
zero, instead of potentially crashing the program.
This also handles the special case of -
2147483648 / -1, which also traps on
x86 and thus must be handled.
Rudolf Polzer [Fri, 3 Jan 2025 23:24:48 +0000 (18:24 -0500)]
Add opcodes for uint and bit shifting.
- OP_RSHIFT_I
- OP_LSHIFT_I
- OP_LE_U
- OP_LT_U
- OP_DIV_U
- OP_RSHIFT_U
For all other ops FTEQCC emits the _I operations; this is technically
broken but meh. Compile DP with `-fwrapv` if you care.
Rudolf Polzer [Fri, 3 Jan 2025 23:24:05 +0000 (18:24 -0500)]
progsvm: add internal support for uint type.
Rudolf Polzer [Fri, 3 Jan 2025 23:27:04 +0000 (18:27 -0500)]
Fix OP_???_IF math.
Previously 5 / 1.25 returned 5 due to rounding the 1.25 to int and
performing an integer division.
Now 5 / 1.25 will return 4 due to converting the 5 to floating point and
performing a floating division.
Same applied to +, - and * for int and float types in this order.
Which is a lot more what one would expect based on what C does, and
also matches FTEQW.
drjaska [Tue, 3 Dec 2024 06:36:19 +0000 (08:36 +0200)]
Change the shade of Quake blue to make it readable (#217)
Commits:
-
465d2925 Revert "Change directory text colour in console from blue to
light cyan (https://github.com/DarkPlacesEngine/DarkPlaces/pull/197)"
This reverts commit
https://github.com/DarkPlacesEngine/DarkPlaces/commit/
0c17657b4a2562f6c1d9e0a0707faff825dd8ce5.
This was a band-aid fix to a single issue and does not address the root
cause or any of the other issues where the Quake blue colour is not
readable.
-
a48ccf0
This is my attempt at making the Quake blue more readable.
---
The changes can be tested for example via `echo
^1aaa^2aaa^3aaa^4aaa^5aaa^6aaa^7aaa^8aaa^9aaa` or `playdemo` tab
completion.
---
`gl_draw.c:862` has the colour definition of blue which is too dark to
be readable in several cases. It is currently set to `#0000FF` in hex,
pure blue. Changing this should be preferred over the change in
https://github.com/DarkPlacesEngine/DarkPlaces/pull/197 as directories
in the console are not the only issue and this avoids making all
directories have the colour of symlinks, breaking the decades long
default UNIX terminal colour theme.
The colour code which (if sys_colortranslation > 0) is output to the
stdout which is often visible on a terminal running the engine gets the
ANSI colour code from `console.c:1367` BUT the user's terminal decides
what colour the colour code is rendered as and thus this doesn't require
any change. If sys_colortranslation == 3 and the terminal supports 24bit
colours then terminal colours are not used but the RGBA colours.
It is worth noting that `cmd.c:669` already includes a hack:
```c
// Work around low brightness and poor legibility of Quake font
"r_textbrightness 0.25\n"
"r_textcontrast 1.25\n"
```
which may affect how your colours are drawn as these values are not the
default values. Mods may also set these. Xonotic uses a different font
and
```quake
r_textbrightness 0.2
r_textcontrast 0.8
```
which I guess is neutral with the math formula in `console.c`:
```c
bound(0, rgb[i] * r_textcontrast.value + r_textbrightness.value * 255, 255);
```
Note that the `r_textcontrast 1.25` hack which I think applies to
vanilla Quake 1 progs looks like it shouldn't actually accomplish
anything due to the 255 bounding except raise the brightness of the
"half brightness" colour. But for some reason changing `r_textcontrast`
to 2 causes a jump in brightness but 2 to 3 or any above ones do not. Is
there something halving the text colour in Quake 1 console? Though after
my change it does affect the shade of blue as it has values which are
not maxed at 1.0 or values like 0 which are not affected by the
multiplication. I would recommend considering removing it.
---
original and
a48ccf0 comparisons:
| original |
a48ccf0 |
| ------- | ----------- |
| Xonotic | Xonotic |
| DP no progs console r_textbrightness 0 r_textcontrast 1 | DP no progs
console r_textbrightness 0 r_textcontrast 1 |
| DP no progs console r_textbrightness 0.25 r_textcontrast 1.25 | DP no
progs console r_textbrightness 0.25 r_textcontrast 1.25 |

I would not recommend changing the colours globally as there are mods
and users who have already made their colours good and visible. Just
blanket adding 0.25 brightness to all colours causes Xonotic's colours
to look very washed out. Game specific fixes should be encouraged like
the Quake 1 progs and Xonotic ones as they all use different fonts and
lighting (text and screen).
---
I did also look at a patch which bakes in r_textbrightness 0.25 into the
base colours but chose not to include it due to the reasons in previous
chapter.
Cloudwalk [Thu, 28 Nov 2024 17:33:27 +0000 (12:33 -0500)]
sv_ccmds: Add help text to ent_create. Remove redundant print pointer change.
Rudolf Polzer [Wed, 20 Nov 2024 13:04:26 +0000 (14:04 +0100)]
Simplify decal system.
Removes the `freedecal` field, and as such, fixes some invariant violations
found in issue #216 that appear to lead to engine crashes.
Performance should remain unchanged, as the decal expiry process performed
full decal copies from end spots to unoccupied spots as part of its
"shuffling" loop anyway.
Fixes issue #216.
Rudolf Polzer [Fri, 8 Nov 2024 15:57:37 +0000 (10:57 -0500)]
Change other instruction names to match FTEQW.
Adds _F and _I type suffixes to lots of Quake-inherited opcodes that had
no type suffix but used floats (or ints).
Not handling IF/IFNOT yet, but documenting a plan.
Rudolf Polzer [Fri, 8 Nov 2024 13:01:29 +0000 (08:01 -0500)]
Make prvm_exec.c names consistent with pr_comp.h names.
Changes:
- DIV -> DIV_F
- FIELD_* -> LOAD_*
Rudolf Polzer [Fri, 1 Nov 2024 18:38:51 +0000 (14:38 -0400)]
pr_comp.h: define enums for all instructions FTE added.
Even the ones we don't use.
Rudolf Polzer [Fri, 1 Nov 2024 18:41:00 +0000 (14:41 -0400)]
Add missing opcode names to the disassembler.
Also fix instruction coloring and naming in disassembler.
- For some reason, all LOAD_ instructions are called FIELD_ now. Weren't
they called INDIRECT_ once? Well, anyway, not touching that, just
making it consistent with itself.
- Match new instructions in color to existing ones doing the same.
Rudolf Polzer [Fri, 1 Nov 2024 19:05:32 +0000 (15:05 -0400)]
Remove "pointer allergy" message, as they're implemented now.
Also, for safety, check the unused arg in 2 arg instructions.
Rudolf Polzer [Thu, 31 Oct 2024 23:40:21 +0000 (19:40 -0400)]
Add ADD_PIW, GLOBALADDRESS, LOADA_* and LOADP_* instructions.
This is used by FTEQCC array and pointer support.
Rudolf Polzer [Wed, 30 Oct 2024 12:55:28 +0000 (08:55 -0400)]
Support STOREP_* with offset.
Rudolf Polzer [Wed, 30 Oct 2024 12:25:07 +0000 (08:25 -0400)]
Fix ADDRESS instruction overflow.
Rudolf Polzer [Tue, 29 Oct 2024 20:51:51 +0000 (16:51 -0400)]
Change engine VM memory layout as follows:
0 to 0x7FFFFFFF: reserved.
0x80000000 to 0x80000000 + num_globals - 1: global pointers.
0x80000000 + num_globals to 0x80000000 + num_globals + num_entities * num_entityfields - 1: entity field pointers.
Note that there are no instructions yet to _make_ global pointers, or to
load values from them.
This is the beginning of implementing the pointer instruction set.
James O'Neill [Fri, 8 Nov 2024 13:18:34 +0000 (22:18 +0900)]
Add sv_gameplayfix_nosquashentities to control entity hitbox squashing (#170)
Adds new cvar `sv_gameplayfix_nosquashentities` which, when enabled,
will prevent entity hitboxes being resized when the entity is squashed
by a mover. This means the entity can continue to interact with pushers
and movers. Fixes #155.
uis246 [Fri, 8 Nov 2024 13:17:30 +0000 (16:17 +0300)]
Improve glsl shader performance (#211)
Most optimizations are done by abusing mathematical properties and
replacing slow on some hardware(e.g. Inetl) min and max with saturation.
For example dot product is in range [-1, 1], so `max(0, dot(...))` =
`sat(dot(...))`.
In places where this potentially can mess with HDR comments were added.
NaitLee [Fri, 25 Oct 2024 13:21:38 +0000 (21:21 +0800)]
fix(fs.c, win32): correct nBufferLength parameter for GetCurrentDirectoryW
NaitLee [Sun, 20 Oct 2024 09:00:14 +0000 (17:00 +0800)]
fix(fs.c, windows, ucrt64): use GetCurrentDirectoryW instead of _wgetcwd on windows to fix compilation on msys ucrt64
Signed-off-by: NaitLee <naitlee@disroot.org>
Cloudwalk [Tue, 8 Oct 2024 01:31:55 +0000 (21:31 -0400)]
Revert "sv_main: Add campaign cvar. Set 1 if not coop or deathmatch (Quake rerelease compatibility)"
This reverts commit
727c2cbec73fbd199cef8e78c5403ae607f56347.
This commit broke Steel Storm. Trading compatibility with remaster
for compatibility native DP games
Fixes https://github.com/DarkPlacesEngine/DarkPlaces/issues/204
Rudolf Polzer [Mon, 23 Sep 2024 13:02:27 +0000 (15:02 +0200)]
Remove the `jumpabsolute` member from `mstatement_s`.
This reduces the struct from 20 to 16 bytes, and thus may save some
RAM. It also may improve CPU cache behavior by keeping more QC code in
L1 and L2 cache, and possibly also improve instruction processing inside
the CPU as all statements are aligned the same way.
On `srv04`, this speeds up Xonotic's `serverbench` from 58.92s real,
57.72s user to 57.72s real, 56.59s user (median of 25).
James O'Neill [Wed, 18 Sep 2024 15:05:51 +0000 (00:05 +0900)]
Change directory text colour in console from blue to light cyan (#197)
Updates the console text colour for directories from dark blue to light
cyan. Fixed #196


bones_was_here [Sun, 15 Sep 2024 06:09:53 +0000 (06:09 +0000)]
Merge MR 'Improve cl_autodemo_delete description'
See merge request https://gitlab.com/xonotic/darkplaces/-/merge_requests/162
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Sat, 14 Sep 2024 07:58:03 +0000 (17:58 +1000)]
Fix scr_loadingscreen_maxfps, related polishing
Since that cvar was implemented, unix time has grown too large to be
represented precisely by a float, causing FPS to be much lower than
configured. Should be using host.realtime (relative) here anyway.
Simplifies Curl_Select() and improves some debug messages.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Thu, 15 Aug 2024 14:11:22 +0000 (00:11 +1000)]
con: implement 24-bit RGB terminal output
Mode 2 behaves like the familiar mode 1 for best compatibility with
terminal themes and expectations.
Mode 3 behaves like the ingame console.
2 is now the default on Linux.
Moves the r_text* cvar change from
d987323e8a9bcc3102c96a237f74875d5b37c4e4 to a better place, and
documents it.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Sat, 7 Sep 2024 08:32:37 +0000 (18:32 +1000)]
game: add "Coppertone Summer Jam 2"
So we can work around its bug (race condition) that makes start.bsp
unplayble sometimes because apparently DP is faster at connecting the
local client than some other engines, and this mod relies on it taking
longer.
Updates some com_game comments for IDEs/Doxygen.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Thu, 5 Sep 2024 20:05:07 +0000 (06:05 +1000)]
host: make some startup errors non-fatal, related polishing and cleanup
It's annoying to abort DP just because of a bad menu progs or demo,
especially on Windows where accessing stdout is difficult so console
access is more important.
Shows a correct fallback message when the menu progs crashes (it's not
because of missing files).
Makes the missing files message more concise.
Performs a full cleanup after any QC crash, most importantly
progs->loaded is now false until that VM is restarted successfully.
Prevents menu failure interfering with more important VMs.
Removes the weird "early frame abort" jump point which is redundant now
because Host_Error, now the only code that ever aborts a frame, calls
Sys_Error instead of Host_AbortCurrentFrame during init.
Changes the framecount of the first frame from 0 to 1 so that when it's
>0 that means frame abort is now possible and safe.
Removes an old FIXME that was addressed.
Adds names for the host states.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Fri, 30 Aug 2024 06:46:46 +0000 (16:46 +1000)]
GL: Remove some D3D cruft
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Thu, 5 Sep 2024 18:47:46 +0000 (04:47 +1000)]
GL: Use the render path switch properly in GL_ReadPixelsBGRA()
This will be needed for screenshots to work with GLES when standard
builds support both GLES and GL.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Sat, 31 Aug 2024 10:17:46 +0000 (20:17 +1000)]
GL: improve debugging
Makes gl_debug work in standard builds (it has no cost when disabled).
Removes registration of gl_printcheckerror in standard builds where it
does nothing (still declared because it might be set by -developer3).
Makes various GL errors red, warnings yellow.
GL_TABLE_TOO_LARGE was removed in GL 3, GLES doesn't have it either.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Mon, 2 Sep 2024 16:49:25 +0000 (02:49 +1000)]
cl_capturevideo: handle failure to open the video file
Fixes https://gitlab.com/xonotic/darkplaces/-/issues/72
Shuts down when -capturedemo cmdline fails instead of leaving the demo
running.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Thu, 29 Aug 2024 03:57:41 +0000 (13:57 +1000)]
cl_capturevideo: accelerate scaling and transfer
Improves cl_capturevideo_printfps.
Renames some func ptrs for clarity.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Sun, 25 Aug 2024 16:20:45 +0000 (02:20 +1000)]
cl_capturevideo: fix extremely slow demo capture perf
If the recording started before the playdemo, or in the same command
string, most of the CPU time was spent sleeping.
Also fixes a stall when starting the recording.
Minor cleanup.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Sun, 25 Aug 2024 02:43:30 +0000 (12:43 +1000)]
snd_mutewhenidle: add only-when-minimised mode, fix cl_capturevideo compat, cleanup
Maybe snd_mutewhenidle 2 should be the default?
When inactive/minimised with snd_mutewhenidle enabled, the audio capture
was unreliable and sound was sometimes output when it should have been
muted.
Closes https://gitlab.com/xonotic/darkplaces/-/issues/92
(the video issue was already fixed).
Timedemos now share the same mute implementation as snd_mutewhenidle.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Wed, 4 Sep 2024 19:40:00 +0000 (05:40 +1000)]
snd: make SDL buffer length configurable
Makes it (approximately) independent of sample rate (snd_speed).
Changes the default (at 48khz) from 2048 to 1024, still not as
aggressive as some other engines.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Wed, 4 Sep 2024 17:40:05 +0000 (03:40 +1000)]
snd: doxygen compat and related whitespace
IDEs also support these comment formats.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Mon, 9 Sep 2024 13:12:50 +0000 (23:12 +1000)]
snd: header cleanup
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Wed, 4 Sep 2024 16:39:54 +0000 (02:39 +1000)]
snd: remove extra updates
These are redundant now that the only audio output is via the SDL
callback which performs additonal mixing as needed.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Sun, 25 Aug 2024 15:41:46 +0000 (01:41 +1000)]
snd: remove unused OSS code
This backend is supported via SDL2.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Sun, 25 Aug 2024 15:34:33 +0000 (01:34 +1000)]
snd: don't lock the device while we already have the lock
while also having a comment about how we don't need to do it...
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Thu, 12 Sep 2024 11:52:43 +0000 (21:52 +1000)]
net_slist: timeout-related fixes
Ignores refresh requests while a refresh is in progress.
This prevents live servers getting timed out, which sometimes happened
when Xonotic menu QC responded to a server list mouseover event.
Fixes incorrect types in timeout check and ping comparison.
Adds some debug messages.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Thu, 5 Sep 2024 11:24:30 +0000 (21:24 +1000)]
net_slist: update QW masters, improve net_slist_debug QW messages
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Wed, 4 Sep 2024 13:15:53 +0000 (23:15 +1000)]
net_slist: fix crash when there's no servers and net_slist_debug is enabled
The crash was introduced in
5772ed20c13d65ac46e4ba60d153287a8a631ec5.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
terencehill [Thu, 29 Aug 2024 13:04:25 +0000 (15:04 +0200)]
Improve cl_autodemo_delete description
Signed-off-by: terencehill <piuntn@gmail.com>
terencehill [Tue, 27 Aug 2024 22:47:44 +0000 (00:47 +0200)]
Add a debug cvar that offsets entity numbers of human clients
Signed-off-by: terencehill <piuntn@gmail.com>
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Sun, 25 Aug 2024 10:17:29 +0000 (20:17 +1000)]
server: fix the save command's checks for multiplayer/dedicated
Also makes the save and load messages nicer.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Sun, 25 Aug 2024 07:18:17 +0000 (17:18 +1000)]
server: don't report lag during intermission
Some games do memory or cpu intensive things then.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Sat, 24 Aug 2024 18:22:08 +0000 (04:22 +1000)]
sys: make TimeString thread-safe
Also avoids copying to an intermediate buffer in the warmer paths.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Fri, 23 Aug 2024 11:00:16 +0000 (21:00 +1000)]
mathlib: rename some macro parameters for clarity
So I don't have to keep looking up which is which.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Fri, 23 Aug 2024 09:26:31 +0000 (19:26 +1000)]
PRVM: reset GETTIME_FRAMESTART at VM startup, improve documentation
Avoids precision issues on servers with long GETTIME_UPTIME.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Tue, 20 Aug 2024 19:34:15 +0000 (05:34 +1000)]
Fix documentation in vid and PRVM headers
Also fixes a trivial warning.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Sun, 18 Aug 2024 20:12:07 +0000 (06:12 +1000)]
build: set stack limit on Windows and Emscripten to match other platforms
Linux, FreeBSD, macOS all default to 8MB for the main thread. MSVC
defaulted to 1MB, MinGW GCC to 2MB.
Optimises Emscripten build slightly and replaces its deprecated
TOTAL_STACK setting.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
James O'Neill [Thu, 15 Aug 2024 14:09:14 +0000 (23:09 +0900)]
Merge PR 'Only use BoxTouchingVisibleLeafs when not using r_novis'
Updates the entity visibility check in `R_View_UpdateEntityVisible` so
that with `r_novis 1` entities are rendered when the player is outside
of the level.
Resolves https://github.com/DarkPlacesEngine/DarkPlaces/issues/188
See https://github.com/DarkPlacesEngine/DarkPlaces/pull/192
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Thu, 15 Aug 2024 14:01:51 +0000 (00:01 +1000)]
Fix some pedantic compiler stuff and a warning off-by-1
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
Lockl00p [Sun, 11 Aug 2024 17:43:09 +0000 (12:43 -0500)]
Merge PR 'Added Webassembly support and fixed GLES2 (somewhat)'
Webassembly version doesn’t work online and screen flashes on GLES2 are
opaque.
See https://github.com/DarkPlacesEngine/DarkPlaces/pull/169
---------
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
Co-authored-by: James O'Neill <hemebond@gmail.com>
Co-authored-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Sun, 11 Aug 2024 13:46:50 +0000 (23:46 +1000)]
net_slist: improve warnings and debug messages
Detects out-of-order packets in dpmaster replies.
Hides IPv6 master timeouts by default.
Adds more info to some messages.
Uses consistent VM warnings for all the QC builtins.
Also some nitpicking.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Wed, 7 Aug 2024 17:33:15 +0000 (17:33 +0000)]
Merge MR 'Reduce the amount of unnecessary messages shown in the game chat'
See merge request https://gitlab.com/xonotic/darkplaces/-/merge_requests/155
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
Mario [Wed, 7 Aug 2024 17:33:15 +0000 (17:33 +0000)]
Reduce the amount of unnecessary messages shown in the game chat
Some engine messages are being printed to chat in scenarios where they may obscure regular game chat.
To help with this, I've adjusted the visibility of them:
- "unconnected changed name to BOT" and "BOT left the game" showing in chat have been disabled by only allowing such messages to show for real clients
Bots will still show that they've been dropped in the console and Xonotic still shows a (dis)connect message
- Verbose "Server lag report" messages (most commonly seen during map votes) have been moved to the console
bones_was_here [Wed, 7 Aug 2024 16:16:00 +0000 (16:16 +0000)]
Merge MR 'Update AMD Windows black texture bug fix hack to work on newer GPUs'
See merge request https://gitlab.com/xonotic/darkplaces/-/merge_requests/157
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Wed, 7 Aug 2024 15:50:46 +0000 (15:50 +0000)]
Merge MR 'sv_sendentities_csqc_randomize_order: send CSQC entities in somewhat randomized order.'
See merge request https://gitlab.com/xonotic/darkplaces/-/merge_requests/151
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
Mario [Wed, 7 Aug 2024 05:10:57 +0000 (15:10 +1000)]
Update AMD Windows black texture bug fix hack to work on newer GPUs
Rudolf Polzer [Tue, 25 Jun 2024 19:13:46 +0000 (15:13 -0400)]
sv_sendentities_csqc_randomize_order: send entities in somewhat randomized order.
Should improve CSQC networking at low rates or high byte rate sending
mods.
No impact if sv_sendentities_csqc_randomize_order is 0. No impact to
non-CSQC entities (these already have a superior priority system).
Enabled by default; let's see how well this works.
bones_was_here [Tue, 6 Aug 2024 04:01:06 +0000 (14:01 +1000)]
CLVM: improve getstati() warning
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Mon, 5 Aug 2024 15:50:34 +0000 (01:50 +1000)]
nudgeoutofsolid: implement fallback for when cliphulls are in use
Fixes sv_gameplayfix_droptofloorstartsolid_nudgetocorrect and
DP_QC_NUDGEOUTOFSOLID doing nothing on Q1BSP.
Fixes the Q1BSP condition in PHYS_NudgeOutOfSolid() to handle the exact
issue (so mod_q1bsp_polygoncollisions is properly supported).
Migrates unsticking code from server-specific to common.
Updates documentation.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Sun, 4 Aug 2024 10:49:40 +0000 (20:49 +1000)]
edict: fix escape parsing and make exceptions configurable
In
312123ecffc7e3dd892c7df754c911b47b9cdfaa a bug was introduced where
newlines were no longer supported in string fields.
This patch supports them again, which requires exceptions be
reintroduced to fully support some buggy maps, but this time there's a
cvar for documentation and adjustment. The other notes and fixes in
https://github.com/DarkPlacesEngine/darkplaces/pull/185 still apply.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Mon, 5 Aug 2024 16:49:44 +0000 (16:49 +0000)]
Merge MR 'Don't apply special default client cvar values in dedicated server'
See merge request https://gitlab.com/xonotic/darkplaces/-/merge_requests/156
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
terencehill [Mon, 29 Jul 2024 21:37:04 +0000 (23:37 +0200)]
Don't apply special default client cvar values in dedicated server, client cvars don't exist
Signed-off-by: terencehill <piuntn@gmail.com>
bones_was_here [Thu, 1 Aug 2024 09:19:50 +0000 (19:19 +1000)]
cvar: remove remaining uses of legacy internal functions
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Thu, 1 Aug 2024 06:14:35 +0000 (16:14 +1000)]
cvar: add sv_dedicated for clean detection in scripts and SVQC
To replace hacky methods like checking if the (QW-specific) qport cvar
is registered (which prints an error when it's not) in default.cfg.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Fri, 26 Jul 2024 10:36:27 +0000 (20:36 +1000)]
cl_net: fix two subtle flaws and simplify logic
The code introduced in
42e86ab7892c3d8f5373402a714b73b2e040d81b had two
separate modes which was more complex than necessary and less robust in
high ping high jitter scenarios.
The 0ms packet check didn't work when the cause was aggressive time
synchronisation and a ping spike.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Wed, 31 Jul 2024 11:11:42 +0000 (21:11 +1000)]
physics: fix a subtle prediction regression
In
3d8f1ca7b142c0a9fd8c3b4a494b62dcce39ab71 a horizontal player speed
calculation was changed to include the vertical velocity and to no
longer be the speed, by use of the wrong macro.
This patch reverts those changes and adds a macro for this calculation.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Thu, 1 Aug 2024 12:17:14 +0000 (22:17 +1000)]
scr: update the centreprint buffer for the empty message
Fixes a bug introduced by me in
https://github.com/DarkPlacesEngine/darkplaces/pull/159 where a
`svc_finale` message with the empty string could cause a
previously displayed engine centreprint to appear again.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Thu, 25 Jul 2024 11:26:26 +0000 (21:26 +1000)]
fs: add `game` as alias of `gamedir` command
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Thu, 1 Aug 2024 17:52:36 +0000 (17:52 +0000)]
Merge MR 'Fix monsters that do not use MOVETYPE_STEP appearing choppy'
See merge request https://gitlab.com/xonotic/darkplaces/-/merge_requests/154
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
Mario [Thu, 1 Aug 2024 17:52:36 +0000 (17:52 +0000)]
Fix monsters that do not use MOVETYPE_STEP appearing choppy
Resolves https://github.com/DarkPlacesEngine/darkplaces/issues/82
Makes monster interpolation always apply to engine-networked entities with the FL_MONSTER flag.
bones_was_here [Tue, 23 Jul 2024 21:32:50 +0000 (07:32 +1000)]
com: fix loop/crash in dpvsnprintf() error handling
Somehow I didn't notice Sys_Printf() calls dpvsnprintf(), see
21fa9010ae6de8792f36cca08cb77aaa95d4b928.
Also fixes a minor bug where Sys_Print() could output more bytes than it
should, introduced in
01642af37128bffc1accbf2e92cb2428ea570720.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Tue, 23 Jul 2024 15:35:18 +0000 (01:35 +1000)]
PRVM: fix incorrect tempstring length in VM_tokenizebyseparator()
This caused memcpy() in PRVM_SetTempString() to copy too many bytes,
when the source string had the maximum length it could read past the end
and trigger a segfault.
Bug was introduced in
26a665ff43052862131df3c63785f91861989fc8 and looks
to be specific to that builtin.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Tue, 23 Jul 2024 05:49:36 +0000 (15:49 +1000)]
VM_parseentitydata: parse backslash escapes
Because VM_writetofile() will include them by calling the same code as
SV_Savegame_to().
Missed this in
312123ecffc7e3dd892c7df754c911b47b9cdfaa.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Mon, 22 Jul 2024 06:07:16 +0000 (16:07 +1000)]
PRVM: remove redundant VM name from some warnings
Prolly should have included this in
17601b9cff2eea0e32d1520d9f69d02c1bb41d26.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
ITdevkc [Mon, 22 Jul 2024 20:27:37 +0000 (16:27 -0400)]
Properly unescape escaped characters in save file when loading (#185)
Modified PRVM_ED_ParseEdict to determine whether it is loading a save or
not, and unescape variables if loading a save.
Fixes https://github.com/DarkPlacesEngine/darkplaces/issues/81
---------
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
Co-authored-by: bones_was_here <bones_was_here@xonotic.au>
uis [Tue, 25 Jun 2024 20:44:53 +0000 (23:44 +0300)]
Reduce stack usage by Con_CenterPrintf
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Sat, 20 Jul 2024 10:48:31 +0000 (20:48 +1000)]
Merge MR 'Reduce RAM usage in various structures'
As I understand in BIH_UNORDERED only children array is used, while front, back, min and max are never written. Opposite true for other node types.
On side note sizes should be explicitly added to ints.
See https://gitlab.com/xonotic/darkplaces/-/merge_requests/149
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
uis [Mon, 13 May 2024 17:02:51 +0000 (20:02 +0300)]
model_brush: slightly change bih math
uis [Sat, 11 May 2024 02:16:42 +0000 (05:16 +0300)]
Slightly improve branching performance for BIH collision
uis [Fri, 10 May 2024 22:32:57 +0000 (01:32 +0300)]
Do a little precalculation when traversing BIH
bones_was_here [Mon, 3 Jun 2024 15:19:22 +0000 (01:19 +1000)]
Use lines instead of columns for some BIH tracing code
See https://gitlab.com/xonotic/darkplaces/-/merge_requests/149 comments.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
uis [Sun, 21 Apr 2024 16:04:18 +0000 (19:04 +0300)]
Move CRC tables to rodata section
uis [Sun, 21 Apr 2024 00:59:09 +0000 (03:59 +0300)]
Reduce BIH node size by 32 bytes
bones_was_here [Sat, 20 Jul 2024 10:28:08 +0000 (20:28 +1000)]
Merge MR 'fix failure to load data from non-ASCII path on Windows'
See https://gitlab.com/xonotic/darkplaces/-/merge_requests/153
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
NaitLee [Sat, 6 Jul 2024 19:00:14 +0000 (03:00 +0800)]
fix can't load data on windows if data is in non-ascii path (introduced by
1f4743e9), refactor windows unicode support
bones_was_here [Sun, 2 Jun 2024 13:23:17 +0000 (23:23 +1000)]
CSQC: disable lighting in R_EndPolygon()
It's not supported and causes visual problems.
Fixes https://gitlab.com/xonotic/darkplaces/-/issues/419
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>