havoc [Sat, 14 Jun 2014 18:48:02 +0000 (18:48 +0000)]
raise system requirements to Pentium3 so that we can force the math
pipeline to SSE, this fixes lightmap alignment issues in several
usermade quake maps (where the x87 increased precision was resulting in
different rounding than in the map compiler)
divverent [Wed, 4 Jun 2014 09:08:42 +0000 (09:08 +0000)]
Some fixes to the keyboard handler:
------- WGL -------
* Keyboard handler now returns Unicode chars
* Fix numlock key interpreted as pause key
* Fix numlock, scrollock and capslock binds not working
* When numlock is off numeric keypad keys now return K_END, K_DOWNARROW,
* etc... Previously they always returned K_KP_<num>
regardless of numlock state
------- SDL -------
* Simulate press and release events when numlock and capslock get
* pressed, so that they can work similarly to the other keys
(excluding key repetition, it doesn't and will never work). It's a
workaround for the default SDL behaviour with these keys:
it generate a press event when a key gets enabled, a release event when
the key gets disabled. Scrollock already works as a
normal key.
* When numlock is off numeric keypad keys now return K_END, K_DOWNARROW,
* etc... Previously they always returned K_KP_<num>
regardless of numlock state
------- GLX -------
* Add numlock, scrollock and capslock keys
havoc [Thu, 29 May 2014 20:01:57 +0000 (20:01 +0000)]
Fixed a large number of WIN64 type conversion warnings.
Changed FS_Write to do multiple write calls if the size exceeds 1GB, this is to accommodate WIN64 where write() takes a UINT rather than size_t. We have no use of such large writes at this time, so this is a mostly theoretical feature.
havoc [Tue, 13 May 2014 22:13:15 +0000 (22:13 +0000)]
Changed the collision code used by sv_gameplayfix_nudgeoutofsolid to not consider collision_impactnudge as that is already taken care of by the caller, and the way it was being done would typically reject such collisions anyway.
havoc [Tue, 13 May 2014 17:59:02 +0000 (17:59 +0000)]
Removed collision_enternudge, collision_leavenudge, collision_startnudge, collision_endnudge cvars, all replaced with their current value (0) as other values break collisions too badly to be of practical value.
havoc [Tue, 13 May 2014 17:43:21 +0000 (17:43 +0000)]
Removed collision_prefernudgedfraction cvar and trace.realfraction field, this has been 1 for a very long time and it is time to lock in that value, thus trace.realfraction no longer has any reason to exist.
havoc [Tue, 13 May 2014 17:03:38 +0000 (17:03 +0000)]
Changed collision_enternudge and collision_leavenudge back to 0 because of massive sticking issues in terrain maps such as the Nexuiz 2.5.2 map ons-reborn.
havoc [Thu, 8 May 2014 03:10:57 +0000 (03:10 +0000)]
Overhauled the tracebox extending code, it now lives in collision.c rather than cl_collision.c/sv_phys.c and has 3 cvars controlling it:
collision_extendmovelength - affects ALL engine traces (physics, etc), this has a higher value because of how important it is to not get stuck in things.
collision_extendtraceboxlength - affects only the qc tracebox builtin.
collision_extendtracelinelength - affects only the qc traceline builtin (in particular it is a bad idea to set this to a high value because it can interfere with trace_inwater/trace_inair reporting).
Changed collision_enternudge/collision_leavenudge to behave more like Quake2/Quake3, this means that you can not sink into a brush (assuming the brush is detected - see collision_extendmovelength).
Some beautification on the RecursiveHullCheck and RecursiveLightPoint code.
havoc [Thu, 8 May 2014 03:06:11 +0000 (03:06 +0000)]
Reworked r_useportalculling to use expanded portal bboxes based on r_nearclip, this resolves an issue where a portal could lie entirely behind the nearclip plane of the frustum, but still need to be recursed.
havoc [Thu, 8 May 2014 01:02:39 +0000 (01:02 +0000)]
Fixed LightPoint code to deal better with lightmap bounds checking, this resolves several issues with item pickups in specific maps being lit wrong, thanks to jitspoe for discussion that led to this fix.
patch from graphitemaster that changes r_fxaa use of texture2D in
default.glsl to use dp_texture2D instead (which resolves to the correct
texture function on later GL versions)
havoc [Thu, 30 Jan 2014 02:05:50 +0000 (02:05 +0000)]
allow .rtlights files to have style values outside the range
0...MAX_LIGHTSTYLES - in particular, -1 is used by fte for unstyled
lights and this is a compatible behavior, just that the loader was
getting in the way.
for safety the MAX_LIGHTSTYLES comparison has been added to each use of
light->style in rendering.
divverent [Fri, 24 Jan 2014 16:39:06 +0000 (16:39 +0000)]
Fix some d0_blind_id related bugs:
- Higher numbered CAs should have priority over lower numbered CAs,
making CA 0 the "default" CA.
- Fix the "Authenticated connection to ..." message (no more -@- crap).
divverent [Tue, 7 Jan 2014 19:22:59 +0000 (19:22 +0000)]
Use an explicit jump table for QCVM instruction dispatch.
Also, duplicate the dispatch into the end of each case for additional
speedup (each of these branches gets a separate branch prediction slot
on many CPUs, which pays off quickly).
divverent [Tue, 7 Jan 2014 16:29:25 +0000 (16:29 +0000)]
COVERAGE! Also fixes prvm always running as PRVMSLOWINTERPRETER :(
Very basic implementation. Needs a persistent store later, I suppose, as
well as better output (e.g. for statements and coverage(), also show
function, file and line).
havoc [Sun, 15 Dec 2013 01:22:30 +0000 (01:22 +0000)]
Upgrade CL_VM_InputEvent to using floats rather than ints, this keeps
the precision on fractional absolute mouse positions.
Changed CL_VM_InputEvent passing of relative mouse moves to no longer
scale by vid_conwidth, vid_conheight as this goes against the intention
in most cases (where mouse turning or similar is being achieved).
havoc [Fri, 29 Nov 2013 20:14:31 +0000 (20:14 +0000)]
patch from Blub to make BSDmakefile work again, this also changes the
build directories from obj/ to build-obj/ due to pmake having a peculiar
fondness for obj/
havoc [Mon, 4 Nov 2013 06:36:48 +0000 (06:36 +0000)]
enable CONFIG_CD on Visual Studio projects, somehow only CONFIG_MENU was added... which meant the cd command was missing, so even if hardware cd playback was not wanted it also lost the ability to play music entirely.
divverent [Fri, 11 Oct 2013 14:43:19 +0000 (14:43 +0000)]
Netconn: when an encrypted connection is used, randomly set one or more of three unused NETFLAGs.
When AES encryption is enabled, this will then work around substring
matching in routers/IPS thanks to CBC and our method of IV selection.
See "startkeylogger". Note that this neither improves nor weakens
security - SSL e.g. has the very issue we're fixing here because it is
based on TCP, and thus resends always are identical payloads.
divverent [Thu, 10 Oct 2013 17:12:47 +0000 (17:12 +0000)]
Add SLIF_CATEGORY for the server list, and a menu QC function to set it.
Callback:
float m_gethostcachecategory(float entry_id) {
// Is supposed to use gethostcachestring() etc. and return a
// category integer.
// The server list is sorted by this category first if
// SLSF_CATEGORIES is set in the sort flags.
}
added GAME_SSAMMO
added another column to gameinfo for the network filter name (gamename
for master server), and now replaces spaces with _ characters
automatically when using -customgamename, added
-customgamenetworkfiltername to override this if desired
this is necessary to resolve an issue where games whose names contain
spaces were not being supported by dpmaster
reworked tcmod to wrap shadertime every 9.1 hours (32768 seconds) rather
than attempting to fixup precision issues in tcmod scroll, which was
breaking shaders that had other tcmod effects after tcmod scroll (or if
they used clampmap)
divverent [Sat, 3 Aug 2013 12:48:18 +0000 (12:48 +0000)]
Revert "Revert "Build in subdirs"", as the issues seem to be ironed out now.
Revert "Revert "Make cdda optional, server does not need to play music" because it", as its requirements are there now.
Do not include menu QC support in server builds.
added FORCEGAME define for building an engine that runs a specific game
regardless of executable name (this basically overrides the executable
name check)