havoc [Wed, 13 Aug 2003 02:17:16 +0000 (02:17 +0000)]
more hackish cleanups of PVS stuff, now decompresses the PVS data at load and this got rid of the last of the calls to LeafPVS (now checks the pvs in the leaf directly)
havoc [Sun, 10 Aug 2003 20:03:05 +0000 (20:03 +0000)]
moved RecursiveLightPoint code to model_brush.c (model->brush.LightPoint), removing it from r_light.c and sv_light.c (now no longer needed)
made LightPoint able to return quake3 lightgrid data (diffuse color and direction in addition to ambient)
havoc [Sat, 9 Aug 2003 17:01:04 +0000 (17:01 +0000)]
redesigned blood effects (now looks like droplets until they hit a surface)
added decals for bullet impacts, explosions, plasma, etc
added cl_particles_quality cvar (cranks up the number of particles, reducing their alpha, making softer effects)
removed cl_particles_blood_size and cl_particles_smoke_size cvars
havoc [Fri, 8 Aug 2003 22:06:08 +0000 (22:06 +0000)]
reverted noclip movement to quake behavior (commented out the free movement call) to fix Cannon Fodder Quake ( http://www.qexpo.com/booths.php?id=5 )
ported sv_user.qc to C (C -> QC -> C again) because it greatly reduces the amount of code and makes it a bit more maintainable
havoc [Thu, 7 Aug 2003 11:01:38 +0000 (11:01 +0000)]
multiplayer-only games (Transfusion and so on) now start playing demos as usual, rather than starting a server at startup (unless dedicated or -listen is used)
havoc [Thu, 7 Aug 2003 10:44:20 +0000 (10:44 +0000)]
simulated packet loss (cl_fakepacketloss_receive, cl_fakepacketloss_send, sv_fakepacketloss_receive, sv_fakepacketloss_send) and ping (cl_fakelocalping_min, cl_fakelocalping_max) for network testing (or to handicap oneself in a local game)
havoc [Wed, 6 Aug 2003 13:16:48 +0000 (13:16 +0000)]
upgraded network protocol to DPPROTOCOL_VERSION4 - this means partial entity updates are now supported (limited bandwidth entity updates), although the "rate" cvar stuff has not been implemented yet... it also means entirely dynamic resizing of arrays in the server's entity database per client, so memory usage goes *WAY* down (used to be 256mb for 64 players, no matter what map/mod, now entirely adaptive as the game goes)
svs.clients gone, replaced with svs.connectedclients (similar idea except this is an array of pointers, and they are NULL for any unconnected client slots), this means entirely dynamic memory usage depending on number of clients (at least in the server; the client still needs fixing), this also means "maxplayers" is now a cvar (sv_maxplayers internally), not a command
some fixes/cleanups/tweaks (like proper setup of default maxplayers and deathmatch cvar in multiplayer-only games incase someone starts a map from console right away without using the menus)
havoc [Sun, 3 Aug 2003 13:20:27 +0000 (13:20 +0000)]
added MOVE_WORLDONLY movement type
now does vis traces using MOVE_WORLDONLY to get a significant speed boost (back to the way it was before) and hopefully prevent any problems with transparent solid bmodels blocking visibility of
entities
corrected a few LittleLongs to LittleFloat in md3 loading (EEP those were bad)
.skin loading is now able to parse the quake3 format, and uses "common/nodraw" or "textures/common/nodraw" for the invisible parts, this also meant supporting replacement tag names in the .skin files... so that's implemented as well (quite difficult)
COM_ParseToken upgraded to be able to parse .skin files (now identifies more single character tokens, and can return newlines if desired - this required patching lots of code to pass false to it)
added beginnings of support for DPPROTOCOL_VERSION4 in client (I.E. does nothing right now because the server speaks DPPROTOCOL_VERSION3)
disable -Werror because it makes a mess of releases if anyone has warnings (like a certain release I made a few days ago... and then got 5 or so 'it doesn't compile' reports from Linux users :)
added MAX_PACKETFRAGMENT to limit size of reliable packets, and also try to keep effects from pushing it over the limit either, this means the only possible way to push it over the limit is entity updates, and if exceeding the limit the packets might be lost, possibly dropping the player... but at least everything else should work now.
changed .skin loading behavior to compare mesh name, not shader name, this matches quake3 behavior
now shows r_notexture if a texture is missing on md2/md3 and missing .skin replacements
support for %s_%i.skin files on alias models (I.E. progs/test.mdl_0.skin), which contain "replace" commands, followed by the name of the mesh skin to replace ("default" for mdl/md2), and the replacement name, any skins that are not replaced are set to not draw (this means of course that a model can have extra pieces that become invisible in some skins)
md3 tag attachments (implemented but untested), also the capability to attach any entity to any other entity without tags (I.E. Q2 vwep models should work if attached to tag "")
redesigned large portions of entity networking (client and server) to deal with the hierarchical entity associations, viewmodel handling (client and server), view handling (client)
this may have fixed some unknown bugs regarding viewmodels and such (I hope so, it's cleaner, although more complicated)
cleaned up quit message system, now GAME_GOODVSBAD2's quit messages work and it's easy to add other games, also added back quake messages for quake/hipnotic/rogue modes
add a couple Mem_CheckSentinelsGlobal calls to loadimagepixels when developer_memorydebug is on (I really can't imagine these ever being needed, but might as well check)
use proper string for conn->address when accepting a new client (otherwise it could easily be so bogus as to trash the netconn structure)
thanks very much to Tomaz for tracking down this major bug
thanks to Tomaz for pestering me about the fact his last project files didn't get committed somehow (I KNOW I did commit it! but it didn't stick somehow)
added SV_PointContents
moved PointContents and FindNonSolidLocation function pointers into brush from brushq1
added TraceBox function pointer to brush (but no implementations of it yet)
finally I decided to commit my todo list, for whoever wants to contribute to the effort of finishing items on it
NOTE: I sort this periodically, so if any items are out of order they will be sorted later
moved all type-specific model fields to respective structures (alias, sprite, brush)
renamed model_t brush to brushq1, and created brush, brushq2, brushq3, currently brush only has entities, all else is type specific
wrote the beginnings of a q3 bsp loader (and of course the headers)
added functions CL_PointContents and CL_FindNonSolidLocation to simplify queries of world model (and make it more maintainable when q3bsp support is finished)
added r_shadow_glossintensity cvar (default 1) for glossmap textures
added r_shadow_gloss2intensity cvar (default 0.25) for forced gloss
added r_lightning.c to move the lightning beam rendering code out of cl_main.c
shrunk entity_t struct a bit (by removing some stuff from persistent which had similar/identical values in render)
restructured/refactored some of entity relinking (now all relinking happens in cl_main.c where it belongs, moved viewmodel stuff out of view code)
restructured how viewmodels are handled
streamlined/cleanedup/refactored V_CalcRefdef (and merged in V_UpdateBlends and V_AddIdle and V_CalcBob)
now reports resamplesfx calls that don't involve resampling (of course only if developer is on)
now reports if memory allocation failed for a sound during loading
added scr_conbrightness cvar
added scr_conspeed, scr_conalpha, and scr_conbrightness cvars to options menu
moved definitions and externs of scr_conspeed, scr_conalpha, and scr_conbrightness cvars to cl_screen.c/screen.h