]>
git.rm.cloudns.org Git - xonotic/darkplaces.git/log
bones_was_here [Fri, 3 Nov 2023 07:55:44 +0000 (17:55 +1000)]
net_slist: code style/formatting fixes
I wouldn't normally nitpick this stuff but the random tabs mixed into
code and comment lines were too annoying and fixing it later commits
would make their diff too noisy.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Mon, 6 Nov 2023 11:17:10 +0000 (21:17 +1000)]
build: fix buildstring
The revision was always "-", there was code duplication and
inconsistency, the meaning of some strings was unclear.
Frees up some space in the `status` "version:" line by moving
gamenetworkfiltername to "protocol:" which seems like a more relevant
section anyway.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Mon, 30 Oct 2023 00:18:48 +0000 (10:18 +1000)]
build: disallow use of VLAs
They're no longer allowed in Linux for safety and performance reasons.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Fri, 27 Oct 2023 11:06:30 +0000 (21:06 +1000)]
PRVM: indicate which VM triggered some common string messages
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Sun, 12 Nov 2023 12:33:10 +0000 (22:33 +1000)]
Fix bug where +binds could get latched at low FPS
This was introduced in
6b21c467a83808e3becf61afe7b67a88f870b502 which
didn't ensure the -bind would be executed after the +bind when the
keydown and keyup events are processed in the same frame.
Fixes https://github.com/DarkPlacesEngine/darkplaces/issues/106
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Sat, 7 Oct 2023 03:40:26 +0000 (13:40 +1000)]
vid: move sound start/restart out of video start/restart
According to the comments in S_Restart_f() we must not restart sound
while running a map, but `vid_restart` did do that...
Also simplified/consolidated code paths a little.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Mon, 30 Oct 2023 01:15:36 +0000 (11:15 +1000)]
vid: add cvar vid_minimize_on_focus_loss
Default of 0 matches current SDL default behaviour.
If set, the environment variable SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS will
override the cvar.
Changes apply immediately.
Also makes changes to vid_mouse_clickthrough apply immediately.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Mon, 30 Oct 2023 13:19:45 +0000 (23:19 +1000)]
macOS: update Info.plist
Declares DP as a game to enable "Game Mode", see
https://gitlab.com/xonotic/xonotic/-/commit/
7c57b3b0d8810e69094a338dd8e94ac8ca8a6f83
Includes the other changes from Xonotic.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Mon, 6 Nov 2023 17:52:15 +0000 (03:52 +1000)]
Windows: opt out of DPI scaling
SDL >= 2.24.0 is required.
Fixes https://gitlab.com/xonotic/darkplaces/-/issues/32
Fixes https://github.com/DarkPlacesEngine/darkplaces/issues/74
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Fri, 6 Oct 2023 11:50:56 +0000 (21:50 +1000)]
input: activate DP_BUTTONCHAT if the window is hidden or loses focus
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Thu, 5 Oct 2023 18:44:37 +0000 (04:44 +1000)]
input: stop capturing mouse movement if window is hidden without first losing focus
Fixes players looking all around after they alt+tabbed.
Moves the logic for selecting the mouse mode out of screen drawing and
into SDL event handling where it's unaffected if we early-out of drawing
the frame.
Prevents mouse "grab" (raw/relative mode + cursor hiding) in a few
"loading" situations.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Mon, 30 Oct 2023 11:25:11 +0000 (21:25 +1000)]
GL: display a more useful error dialog if context creation fails
There's no need to repeatedly retry if context creation fails, the
GPU and driver capabilities won't have changed.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Mon, 30 Oct 2023 00:00:34 +0000 (10:00 +1000)]
SDL: print version earlier, once only
No need to print it again at every vid_restart, it can't change.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Wed, 4 Oct 2023 16:43:12 +0000 (02:43 +1000)]
vid: implement monitor selection with instant cvar changes
Adds cvars: vid_display, vid_info_displaycount
Prints the monitors detected at startup and on hotplug.
Requires SDL headers >= 2.0.18 at build time.
At runtime older versions should still work but may lack some functionality.
May not work properly or at all if vid_desktopfullscreen is 0.
May require vid_restart after hotplug events.
---
Changes existing cvars vid_fullscreen, vid_desktopfullscreen, vid_resizable,
vid_borderless to apply instantly.
Also (for windowed mode) works around window managers that move the
window after SDL creates and centres it (typically when adding a
titlebar), so the crosshair is always at the centre of the monitor.
Adds some missing SDL_WINDOWEVENT enumerations.
Changes the GL viewport size retrieval from screen coordinates to
pixels, which is a prerequisite for "HIGHDPI" aka "Apple Retina"
support.
Fixes https://gitlab.com/xonotic/darkplaces/-/issues/385
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Tue, 3 Oct 2023 17:24:44 +0000 (03:24 +1000)]
vid_vsync: fully support adaptive, remove polling, print better errors
Adaptive vsync was partially supported: it worked if set before window
creation but not if toggled on afterwards, and wasn't mentioned in the
cvar description.
The immediate application of `vid_vsync` cvar changes was implented by
polling, which was ok for one cvar but I'll be making more vid_ cvars
apply immediately (no vid_restart needed), and don't want to poll for
things that rarely change every frame.
SDL is now queried for the current state of vsync instead of storing
what we believe to be the current state.
If the setting can't be applied the reason (as reported by SDL) is now
printed.
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Mon, 6 Nov 2023 15:14:10 +0000 (01:14 +1000)]
vid: remove obsolete cvars
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Sat, 14 Oct 2023 16:43:38 +0000 (02:43 +1000)]
vid: misc cleanups
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Fri, 3 Nov 2023 09:36:15 +0000 (19:36 +1000)]
Save cvars cl_rollangle and cl_rollspeed to config.cfg
Closes https://gitlab.com/xonotic/darkplaces/-/issues/393
Signed-off-by: bones_was_here <bones_was_here@xonotic.au>
bones_was_here [Fri, 3 Nov 2023 09:35:21 +0000 (09:35 +0000)]
Merge MR 'off-switch cvar for dlcache unload on server/map change'
See https://gitlab.com/xonotic/darkplaces/-/merge_requests/141
Dr. Jaska [Fri, 3 Nov 2023 09:35:21 +0000 (09:35 +0000)]
off-switch cvar for dlcache unload on server/map change
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
bones_was_here [Fri, 1 Sep 2023 10:30:51 +0000 (20:30 +1000)]
Add missing DP_QC_FINDCHAIN_TOFIELD declarations to CSQC defs
Johan Mattsson [Sat, 12 Aug 2023 22:49:42 +0000 (00:49 +0200)]
Fix potential index out of bounds
Johan Mattsson [Sat, 12 Aug 2023 22:48:20 +0000 (00:48 +0200)]
Fix potential index out of bounds
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
bones_was_here [Tue, 18 Jul 2023 03:39:47 +0000 (13:39 +1000)]
dedicated server: don't call CL_UpdateScreen() and SCR_BeginLoadingPlaque()
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.
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.
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
bones_was_here [Sun, 21 May 2023 01:29:48 +0000 (11:29 +1000)]
Clarify behaviour of random() builtin
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
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>
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>
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
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>
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.
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
Cloudwalk [Fri, 24 Mar 2023 12:43:00 +0000 (08:43 -0400)]
fs: Use unsigned short for extra field and file comment lengths
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>
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>
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>
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>
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>