fixed a (hopefully rare) bug affecting shalrath missiles which caused multiple missiles to explode on successive frames due to the large bounding boxes of the MOVETYPE_FLYMISSILE explosions causing a touch event on the other flying missiles that were not yet near the player, which caused them to explode even though they were being touched by an explosion that was SOLID_NOT
fix bug that often made enforcer laser bolts 'stick' in the air if a player is standing right next to the enforcer when it fires, this was due to some internal confusion over what constitutes a 'startsolid' case, this has been clarified so that SV_PushEntity only uses trace.bmodelstartsolid, just like the toss/bounce/fly/flymissile/bouncemissile physics expect
removed video capture formats other than AVI I420 as it is the only useful format in practice (lots of jpeg/tga files is annoying to deal with, and few programs support rgb/yv12 raw dumps), this means no more .wav saving either and cleans the code a bit
fixed several bugs in sound system when saving avi (lingering .wav code)
added cl_capturevideo_realtime cvar to allow realtime capture if desired (requires a fast machine and can have A/V sync issues)
implemented direct AVI video capture using the I420 colorspace (aka Intel(r) 4:2:0 codec) with interleaved PCM audio, and would like to thank Microsoft(r) for wasting many hours of my time with AVI format insanity
changed VM_fopen and VM_fclose announcements to require developer >= 100 like the VM_fputs/VM_fgets functions do, and made them console prints instead of VM_Warning calls (not sure why they were to begin with)
black [Wed, 13 Sep 2006 21:07:04 +0000 (21:07 +0000)]
Try to fix a dedicated server crash by moving the two csqc_ cvar initializations
into SV_Init. This is a hack, however, so someone else please clean this up :)
The VM's internal name now is always "client", so this should make life easier
when debugging (note: this doesn't affect the progs filename used).
changed deluxemapping detection code to deal with odd bsp files produced by q3map2 that contain two lightmaps but the second one is completely unused and blank and thus not suitable as a deluxemap, this fixes black (or very dim) surfaces in some small maps when GLSL is enabled
remove some unsafe optimizations in VM_Files_Init and VM_Files_CloseAll (using memset on the return value of an indexing macro is generally a bad idea, and doesn't improve code readability)
havoc [Tue, 29 Aug 2006 12:58:45 +0000 (12:58 +0000)]
another patch from div0 to improve ping parsing behavior in the event that multiple ping reports are received after a query (due to packets backlogging)
havoc [Sun, 27 Aug 2006 10:13:24 +0000 (10:13 +0000)]
patch from div0 to fix ping report parsing where the first player slots are empty
fixed bug in negative ping parser (it was not skipping the - when it was negative)
havoc [Sat, 26 Aug 2006 07:02:49 +0000 (07:02 +0000)]
CSQC fixes (less broken, still not spec compliant)
CSQC can now link the same entity multiple times (each time modified differently) as per the CSQC spec (this is mainly useful for rendering multi-model players based on one csqc entity, like Quake3's cgame does)
changed DrawQ functions to automatically set up 2D rendering if previous rendering was of a 3D view (necessary change for proper CSQC support)
changed QuakeC rint builtin implementation to handle very large values (outside of int range) and possibly run a little bit faster, note that it still rounds toward the nearest integer, away from zero (as intended)
refactored gun bob, damage kick fade, and stair smoothing code to eliminate a 'multiple fade steps per frame' bug
renamed the misnamed VM_ftoi function to VM_ftoe, in accordance with the menu QC builtin ftoe
havoc [Fri, 25 Aug 2006 12:48:54 +0000 (12:48 +0000)]
fix csqc support on dedicated servers (now CRC's the csqc_progname file at level start and sends that to clients, so it does not need to actually load the csqc_progname itself)
havoc [Fri, 25 Aug 2006 08:53:39 +0000 (08:53 +0000)]
changed release optimizations from -O2 -ffast-math -funroll-loops to simply -O2, this produced a 0.3% fps loss in my most extreme testing on x86_64, which does not seem significant, and gcc 4.1.0 was breaking the Nexuiz menu with the -funsafe-math-optimizations option (part of -ffast-math)
havoc [Wed, 16 Aug 2006 07:13:29 +0000 (07:13 +0000)]
reorganized Host_Init a bit, merged away a few functions (such as COM_CheckRegistered and COM_InitArgv) and changed some others, now registers several cvars earlier in the startup process
integrated patch from div0 for sys_colortranslation and sys_specialcharactertranslation cvars which control the translation of color codes and Quake characters for terminal output on stdout, this gets rid of the hideous ^7 on every line and makes colored text show up properly using ANSI color codes on most platforms (on windows the color codes are simply stripped because ANSI is not supported by windows terminals)
havoc [Mon, 14 Aug 2006 22:53:15 +0000 (22:53 +0000)]
patch from div0:
instead of downloading in game and reloading the map when it is done (which
caused crashes because of multiple world models in the model list and didn't
also reload sounds and models), disconnect while downloading and execute the
connect command to reconnect later
havoc [Mon, 14 Aug 2006 22:51:43 +0000 (22:51 +0000)]
patch from div0:
fix console weirdnesses:
* empty lines kill command history (instead don't add empty lines to the history)
* cursor position and history line length were done the wrong way, positioning
the cursor outside of the line or only recalling part of a line
NOTE: maybe it is better to move the Con_Printf BELOW the return so an empty
prompt isn't even displayed? bash does not do it like that, IRC clients do it
like that, and personally I don't care
havoc [Mon, 14 Aug 2006 05:14:24 +0000 (05:14 +0000)]
reenabled the quake 'fall out of level' bug, to make the scorpion near the start of hip1m2 fall out of the ceiling as it was meant to (this probably fixes a lot of other bugs in various broken maps)
added gamepad/joystick support to the SDL client, this uses completely different cvars from the windows one, and is noticably less weird as a result :)
improved plane distance epsilon checking and improved precision when converting brush planes to polygons (by finding a roughly minimal bounding box for the plane to polygon projection), this should reduce collision brush issues on modeled terrain in q3bsp maps
changed Draw_CachePic to load both tga/png/jpg and lmp/wad images at once and take the pic size from the lmp/wad, and cleaned up parts of wad and lmp loading, eliminated SwapPic
don't crash if r_restart is used in startup scripts before anything starts the video system (fixed this by starting video system in r_restart if necessary)
fix a buffer overflow bug in InfoString_SetValue (thanks div0!), and increase userinfo and serverinfo strings to 1280 bytes each (from 196 and 512 respectively)
added ping and status command output parsing in the client, currently this is used to get pings in the scoreboard on Quake servers (and of course older DP servers), the server sends a pingplreport command after the human-readable ping report so that the packet loss display works (but only if the server supports this), changed client to send ping command instead of pings (at least until the next protocol version increase) and the client will not print ping report messages while the scoreboard is displayed. the status command parsing is not actually used at this time but could be the basis of iplog support
added ping and packet loss display to scoreboard, and pings/pingplreport commands to make it work without changing protocol and without breaking demo compatibility either, this can work on any server that supports the pings command and replies with pingplreport
revised scoreboard layout and added column titles above it
made nexuiz missing data fallback menu apply to all games when their main menu image is missing (the Open Console and Quit options are more useful than a bunch of checker squares)
clean up of FL_ONGROUND checks in MOVE_TOSS/FLY/FLYMISSILE/BOUNCE/BOUNCEMISSILE/STEP code, this fixes items and monsters sometimes being left floating in the air after a trap door opens or when riding a func_train (most notably in the lava room of r1m5 of mission pack 2)
added sv_gameplayfix_upwardvelocityclearsongroundflag cvar to allow the upward velocity gameplay fix to be disabled if desired
molivier [Sun, 25 Jun 2006 17:35:17 +0000 (17:35 +0000)]
You can now set a different default base directory at compile time, by defining DP_FS_BASEDIR to the new value (ex: make DP_FS_BASEDIR=/usr/local/games/quake release)