r_glsl_deluxemapping 2 support for vertexlit surfaces, deluxemap forced surfaces no longer use texture2d(deluxemap). Attempt to fix '2D pics GLSL gamma with sRGB', added v_glslgamma_2d (default 0). New "dprtlightambient" shader keyword which adds ambient rtlight to surface, useful on lowpoly harsh entities (like grass bushes) for smoother rtlightning. New trick: CSQC sound/pointsound plugins take "#sound_index" which can be returned by precache_sound.
Lightmaps merging debug print ("copying original lightmap") now uses dprint. ODE: Add SOLID_PHYSICS_TRIMESH to replace SOLID_BSP as it has some bad hacks applied (like unstuck code). Added cvar physics_ode_world_gravitymod.
re-optimize the IQM model loader somewhat by not allocating and copying
any data that is read-only in nature (the endian functions are
unaligned-safe by nature)
Fix gl_texturecompression_sprites to check for gl_texturecompression. Rough patch to make v_glslgamma work with 2d graphics (hud, menupics, video etc.).
sound7() function, supporting more sound channels (-128 to 127, negative ones being additional auto-channels, positive ones being additional single-channels)
havoc [Sun, 26 Jun 2011 22:37:13 +0000 (22:37 +0000)]
implemented DP_ENT_TRAILEFFECTNUM extension, which allows
self.traileffectnum = particleeffectnum("mycustomeffect") on server
entities, rather than requiring csqc for trailparticles()
divverent [Sun, 26 Jun 2011 19:50:50 +0000 (19:50 +0000)]
fix a bug in EntityFrame5 stats delta bits handling
It forgot to memset the stats delta bits to 0, so it marked stats as being sent
in the database that were not. This clearly caused too large resend data when
packet loss occurred.
divverent [Sun, 26 Jun 2011 19:07:03 +0000 (19:07 +0000)]
funny feature: cl_lerpexcess
Hides the effect of packet loss for linear motion. Mispredicts nonlinear
motion, of course. Can be configured to a max number of server packets lost
that it will try to compensate for. Of course off by default.
havoc [Thu, 23 Jun 2011 05:41:53 +0000 (05:41 +0000)]
fix model loading memory corruption errors related to
r_enableshadowvolumes 0, and also potential memory corruption errors
related to numvertices <= 65536
havoc [Thu, 23 Jun 2011 03:12:27 +0000 (03:12 +0000)]
more rework of r_shadow_bouncegrid, now dynamic mode performs somewhat
better, but still without the artifacts it used to have
added more static mode cvars to differentiate optimal settings
havoc [Thu, 23 Jun 2011 02:44:24 +0000 (02:44 +0000)]
added r_shadow_bouncegrid 2 which disables rtlights and just renders the
bouncegrid
reworked several aspects of bouncegrid, it has less grid artifacts now
havoc [Mon, 20 Jun 2011 05:29:39 +0000 (05:29 +0000)]
fix two typos in DP_PHYSICS_ODE explanation (thanks FrikaC for pointing
these out)
synchronize dpextensions.qc files (for anyone reading the dpmod one)
havoc [Wed, 8 Jun 2011 19:23:52 +0000 (19:23 +0000)]
reworked progs loading so that entvars_t and globalvars_t are no longer
required to match (if they do match, the relevant fields will match the
structs, otherwise name lookups are used), this means the PROGHEADER_CRC
no longer has to match either... and same for csqc and menuqc
havoc [Wed, 8 Jun 2011 18:03:19 +0000 (18:03 +0000)]
eliminated S_LockSfx and S_UnlockSfx which were not thread-safe and
could cause sounds to leak across multiple levels, cd play/loop now
immediately unload previous music track
havoc [Wed, 8 Jun 2011 17:36:16 +0000 (17:36 +0000)]
implemented r_transparent_alphatocoverage 2 which promotes alphablend if
desired to ATC, the default is 1 (only promotes alphatest)
enable GL_MULTISAMPLE during extension detection to make things work
havoc [Wed, 8 Jun 2011 13:33:46 +0000 (13:33 +0000)]
reworked use of alphatest - now only GL11/GL13/GLES1 paths use it, other
paths use SHADERPERMUTATION_ALPHAKILL (including the SOFT path)
reworked r_transparent_alphatocoverage, it no longer needs
vid_multisampling
divverent [Fri, 3 Jun 2011 20:18:37 +0000 (20:18 +0000)]
new cvars: snd_startloopingsounds, snd_startnonloopingsounds
Use cases:
1. playing mods with bugs where looping sounds never end, annoying
2. implementing demo seeking via cfg file tricks (turn off non-looping sounds
during high slowmo values used for seeking)
divverent [Tue, 31 May 2011 20:25:01 +0000 (20:25 +0000)]
viewmodel matrix fixes:
- have two separate viewmodel matrices, one that only applies the viewmodel
scale (for EF_NOGUNBOB), and one that contains bobbing etc. effects
- recalculate both matrices properly when using R_SetView() from CSQC
- make sure view parameters are consistent between whether R_SetView() is
called or not
- fix missing viewmodel scale in intermission
havoc [Sat, 28 May 2011 17:50:38 +0000 (17:50 +0000)]
reworked sv_gameplayfix_nudgeoutofsolid, it now begins with an enlarged
start position test and nudges out of solids, then does the move, this
should reduce collision issues with triangle mesh brushes in steelstorm,
renamed sv_gameplayfix_nudgeoutofsolid_bias to
sv_gameplayfix_nudgeoutofsolid_separation with 0.03125 as default
divverent [Fri, 27 May 2011 16:58:46 +0000 (16:58 +0000)]
call SetDllDirectory on Win32 too
Usage: put DLLs in a bin32/ subdir for that
If not done, binaries work as before.
This is the only way to have a 32bit and 64bit executable version in the same
directory! Otherwise Windows will abort DLL search at the 32bit DLL, which
fails to load into a 64bit process.
NOTE: this requires WinXP SP1 and above. To compile with this functionality
disabled, compile with -DDONT_USE_SETDLLDIRECTORY added to the CFLAGS.
havoc [Mon, 23 May 2011 15:49:45 +0000 (15:49 +0000)]
honor ent->shadertime in all material handling (tcmod, etc)
do frame looping properly on q3 shader animmap (no more precision issues)
wrap tcmod scroll so that it does not have precision breakdown
changed rsurface.ent_shadertime to rsurface.shadertime which is now
relative time (what should be used)
havoc [Mon, 23 May 2011 15:46:32 +0000 (15:46 +0000)]
added LoopingFrameNumberFromDouble function to do this operation
correctly (using divide, floor, and multiply), since doing it the lazy
way (cast to int, use modulus operator) breaks down after a certain
amount of time in the level
havoc [Mon, 23 May 2011 09:41:52 +0000 (09:41 +0000)]
fix a crash in debug builds where the compiler did not optimize
ch->sfx-> to use a local variable holding the unchanging value of sfx
(the crash occurs when the mixer thread clears ch->sfx while the main
thread is deciding whether to merge a sound onto an existing channel -
if the channel dies during this code, the sfx pointer must be preserved)
vortex [Fri, 20 May 2011 20:27:10 +0000 (20:27 +0000)]
Added "loadcubemap" builtin to allow preload cubemaps level can use, added experimental "r_water_lowquality" which reduces options while rendering water planes, this can help a bit. Added "gl_texturecompression_sprites" cvar.
havoc [Thu, 19 May 2011 01:33:42 +0000 (01:33 +0000)]
added JOY_UP/DOWN/LEFT/RIGHT keys which are a more general form of the joy_axiskeyevents cvar (which when set to 1 will turn these into UPARROW/DOWNARROW/etc as before, but this way a menu qc can respond to them correctly)