havoc [Sat, 4 Mar 2006 10:47:37 +0000 (10:47 +0000)]
eliminated calls to Matrix4x4_CreateIdentity (now copies from the already existing global identitymatrix struct) and changed all references to r_identitymatrix to refer to identitymatrix
havoc [Sat, 4 Mar 2006 09:24:21 +0000 (09:24 +0000)]
replaced sbarpic_t with cachepic_t in sbar code (saves a bit of memory)
changed DrawQ_SuperPic and DrawQ_Pic to take a cachepic_t * instead of a pic name (this speeds up the sbar code by not using name lookups constantly)
removed DrawQ_Fill (use DrawQ_Pic with NULL pic instead)
changed crosshair/editlights cursors to use r_crosshairs array initialized at startup instead of constantly calling Draw_CachePic
changed Host_Init to call SCR_BeginLoadingPlaque instead of Host_StartVideo (which is called by SCR_BeginLoadingPlaque)
havoc [Fri, 3 Mar 2006 15:02:56 +0000 (15:02 +0000)]
now only compiles GLSL shaders on demand, this improves startup times (but causes some pausing when new combinations occur - which usually only happens on new levels)
havoc [Tue, 28 Feb 2006 05:41:39 +0000 (05:41 +0000)]
reduced number of GAME_NEXUIZ checks in the engine (added cl_sound and sv_sound cvars to change or disable engine-triggered sounds), removed some old unused nexuiz menu code (now that the fallbac
k prevents you from even reaching the singleplayer menu)
havoc [Sun, 26 Feb 2006 11:00:19 +0000 (11:00 +0000)]
vast improvements in qw server listings in the server browser
now DP servers and QW servers are color coded differently, and player count is color coded (red if empty or full, yellow if less than 4 players, white otherwise, useful for quickly identifying the busy servers)
havoc [Sat, 25 Feb 2006 08:56:03 +0000 (08:56 +0000)]
fix typos that caused colormod to malfunction when hosting a QUAKEDP protocol server (it was sending red as green and blue), thanks to Spike for pointing this out
havoc [Thu, 23 Feb 2006 14:50:41 +0000 (14:50 +0000)]
added qw compatible "rcon" support (allows a client who knows the server's rcon_password to run a command on the server), had to move NetConn_ServerFrame outside of the SV_VM_Begin block in Host_ServerFrame, and add relevant SV_VM_Begin blocks to various parts of host_cmd.c
added qw print command packet to client packet processing (needed for remote rcon when not connected to the server)
added qw "packet" command (sends a text message to the specified address)
havoc [Thu, 23 Feb 2006 10:57:31 +0000 (10:57 +0000)]
merged NetConn_SendReliableMessage into NetConn_SendUnreliableMessage, and also merged away the other ReliableMessage functions (ReSend and Next)
rearranged client and server message sending calls to attempt to send unreliable messages, even if empty (necessary to trigger sending of reliable messages)
eliminated last remnants of NetConn_SendToAll stuff
changed some cls.demoplayback checks to !cls.netcon checks
havoc [Thu, 23 Feb 2006 05:29:16 +0000 (05:29 +0000)]
removed runmove array in favor of using a private entity flag to prevent movement on the first physics frame an entity exists in, this makes projectiles fired by cl_movement 1 clients behave properly
havoc [Wed, 22 Feb 2006 12:12:24 +0000 (12:12 +0000)]
fix decal draw order bug introduced in recent commit, I forgot that decals are not queued as transparencies like other particles, so calling R_DrawParticles before rtlights was a bad idea (as it made the rtlights be unaffected by decals)
havoc [Wed, 22 Feb 2006 10:02:25 +0000 (10:02 +0000)]
changed behavior of r_showtris (now only affects geometry in the game view, not sky, not hud, and not bloom)
added r_showtris_polygonoffset (doesn't seem to work, for unknown reasons)
renamed r_drawcollisionbrushes to r_showcollisionbrushes and got rid of its mode 2 behavior (which was trippy but not all that useful)
added r_showdisabledepthtest cvar which disables depth testing on the debugging geometry produced by r_show* cvars
renamed r_shadow_visiblelighting/volumes cvars to r_showlighting/shadowvolumes (and they no longer have a mode 2, use r_showdisabledepthtesting to get the same effect instead)
molivier [Sun, 19 Feb 2006 09:25:42 +0000 (09:25 +0000)]
Workaround for a bug in the Linux ATI proprietary driver; it does not put the current video mode in the first slot in the array returned by XF86VidModeGetAllModeLines, which can lead to a crash in VID_Shutdown. Also, fixed a small memory leak (the video mode array was never freed)
havoc [Fri, 17 Feb 2006 09:41:32 +0000 (09:41 +0000)]
fix crashes with NAN bounding boxes (collisions or dlights) recursing down the BSP tree, they still don't behave properly (because there is no proper handling of NAN), but at least they don't crash anymore
havoc [Fri, 17 Feb 2006 04:00:27 +0000 (04:00 +0000)]
added an unstick function used on most entities if their movement trace indicates they started in solid, this should prevent items and gibs from falling out of levels 99% of the time
havoc [Thu, 16 Feb 2006 10:28:15 +0000 (10:28 +0000)]
reworked input timing a bit more, now cl_movement 1 mode syncs client packets to the incoming server packets (because the server does not trust the client's timing, only the history of server frames sent to the client, and thus the client has to sync exactly to the server timing to work)
moved CL_SendCmd() call into CL_ReadFromServer right after CL_ReadDemoMessage(), this fixes the prediction jitters that recently appeared with the cl_netinputpacketspersecond feature, however it might add a slight delay in local games (I haven't noticed a delay however)
havoc [Thu, 16 Feb 2006 07:24:09 +0000 (07:24 +0000)]
remove an unused extern for sys_ticrate, and added a comment warning about improper rate limiting if sys_ticrate is 0 (but it should never be 0 on a real server)
havoc [Thu, 16 Feb 2006 07:20:28 +0000 (07:20 +0000)]
fixed bug that allowed accidental speed cheating with cl_movement 1 mode (move->time was being cleared by ApplyClientMove, so when ReadClientMove calculated how much to move since the last move, it always thought the last move was at time == 0, and then it clamped this delta to 0.1 or less, which prevented it from being completely ridiculous, but still horrible)
added kicking of speed cheaters (if they echo a timestamp that has not yet been issued by the server, they're clearly lying)
havoc [Wed, 15 Feb 2006 03:09:37 +0000 (03:09 +0000)]
improved server handling of multiple packets per client physics frame (as would be the case if the client sends more frames per second than the server sends to it)
havoc [Wed, 15 Feb 2006 02:54:14 +0000 (02:54 +0000)]
fix very stupid bug that caused entities to sometimes not be removed (priority was not being updated when deltabits were added back to an entity, so the priority remained at the no-update-necessary level despite the fact it should be sent again)
havoc [Sun, 12 Feb 2006 19:44:39 +0000 (19:44 +0000)]
fixed changelevel networking bug (now ignores clc_ackframe messages from clients who are not spawned, this prevents leftover entity acks from previous level from messing up netcode)
havoc [Sun, 12 Feb 2006 18:21:16 +0000 (18:21 +0000)]
renamed NetConn_UpdateServerStuff to NetConn_UpdateSockets and made it non-static, now called in CL_EstablishConnection so +connect on commandline works again
havoc [Sun, 12 Feb 2006 05:35:37 +0000 (05:35 +0000)]
rollback recent network compression changes, it really does have to be reset on level change because the client expects it to be, another solution must be found
havoc [Sun, 12 Feb 2006 02:55:42 +0000 (02:55 +0000)]
fix problems with changelevel causing network compression to stop working (bug introduced when SV_SendReconnect was rewritten quite some time ago), this was happening because the compression database was being freed on level change and reallocated, and thus producing older entity frame numbers that the client refused