Commit graph

329 commits

Author SHA1 Message Date
Bill Currie
12eb4eb72e serious cleanup of demo_t in preparation for converting it to a more
general recorder struct to be shared between the demo recorder and qtv
proxy connection(s)
2005-05-01 04:27:05 +00:00
Bill Currie
629a2db63d first stage of rework for qtv support. there might be slight breakage in
mvds, more testing is needed, but things seem ok.
2005-04-30 08:45:17 +00:00
Bill Currie
e500935f1f move SV_WriteClientToDemo (going step by step now) 2005-04-30 04:37:01 +00:00
Bill Currie
d308d324cc o misc little cleanups
o add plent_state_t, packet_players_t and delta_t in preparation for
    re-worked delta compression code.
  o use plent_state_t in the client.
2005-04-30 03:59:23 +00:00
Bill Currie
9dcd2333d9 Serious mvd surgery. Interpolation of player position/angle is no longer
done and playerinfo is now written at the proper time, fixing the
"lagged dlights" issue (as Spike puts it:). Hack to fix broken mvds removed
as it should no longer be needed if everybody fixes their mvd servers :)
2005-04-27 09:54:37 +00:00
Bill Currie
f1437732a7 rename checkmove to tracebox. This is sort of Matthew T. Atkinson's
tracebox patch, but since the code was already there under a different
name, just rename the old code. Really got to wonder who first wrote this
function: Mercury or LordHavoc (and if LH, did he write it for qf or dp
first?)
2005-04-26 02:52:51 +00:00
Bill Currie
8770df39e5 start documenting things (progs building still borked)
This is an imperfect revision of history.
2004-11-08 23:27:00 +00:00
Bill Currie
201252c1c0 FIXME cleanup and a missed win32 compile fix
This is an imperfect revision of history.
2004-11-06 02:21:00 +00:00
Bill Currie
2cb81b37f9 move the *_RecursiveHullCheck functions from pmovetst.c and world.c to MOD_TraceLine in libs/models/trace.c, at the same time rewriting the code to work itteratively rather than recursively.
This is an imperfect revision of history.
2004-11-02 08:40:00 +00:00
Bill Currie
a89d8d23a3 grievre's patch to enable fullbright skins, controlled rotation and server
control of various features
2004-07-11 01:41:01 +00:00
Bill Currie
9ed9832789 bring back the alpha setting for dlights (finally found out what it was
for) and "fix" the wayward dlights in mvds: caused by svc_muzzleflash being
written before the player updates. Should probably fix properly that in the
server too.
2004-05-03 06:21:39 +00:00
Bill Currie
c1d5f230a9 minor cleanups 2004-03-31 19:14:55 +00:00
Bill Currie
bd358618da bit of a tidy up to make following things a bit easier 2004-03-06 04:42:43 +00:00
Bill Currie
17afd25631 hide SV_Stop_f 2004-03-06 03:18:14 +00:00
Bill Currie
a3934f8841 more progress for qtv 2004-03-05 23:42:15 +00:00
Bill Currie
4b9d978d44 initial commit of sv_qtv stuff. doesn't do much of anything yet but I need
to clean up DirectConnect first
2004-03-04 00:13:20 +00:00
Bill Currie
9878966625 whitespace 2004-02-24 20:58:30 +00:00
Bill Currie
b502cfc3ce move ClientReliable* from sv_nchan to MSG_Reliabe* in msg_backbuf so the
backbuffer code can be shared between qw-server and qtv
2004-02-22 05:40:08 +00:00
Bill Currie
6e6df349e4 move the ucmd message code into a common qw lib (more will likely follow) 2004-02-21 05:09:02 +00:00
Bill Currie
1033f7e322 move qw/include/protocol.h to include/qw/protocol.h making life easier
qtv can now connect to a server (won't stay connected though)
2004-02-21 02:31:22 +00:00
Bill Currie
6d02004ca8 Mike Gorchak's <mike@malva.ua> second (final for now:) QNX patch. renames
msg_t to qmsg_t.
2004-01-20 06:11:00 +00:00
Bill Currie
187cef1d28 make dist fix 2004-01-07 00:14:39 +00:00
Bill Currie
133879f8fa provide builtin mappings for id (none, really), qf and ktpro/qwe (qw only),
add qwe builtin extensions to qw-server. provide sv_progs_ext to control
the builtin mapping. valid values are "id", "qf" (our old static builtins),
"qwe"/"ktpro" (either works. for ktpro mod support) and "none" (no
mapping). any other value is equivalent to "none".
2004-01-06 07:00:39 +00:00
Bill Currie
e53967b346 --disable-static now works (thanks for the heads-up, raorn) 2003-12-22 20:51:08 +00:00
Bill Currie
ce745c8078 better command output redirection handling: maplist over rcon should show
all (or most, there are limits still) of the maps on a server with many
maps.

move the optional progs funcs into sv_funcs_t and add UserInfoChanged,
ChatMessage and LocalinfoChanged callback support.

clean up PF_setinfo (and SV_SetInfo_f and SV_Localinfo_f) using shared code
where possible und to use the UserInfoChanged and LocalinfoChanged
callbacks.

add chat message callback to SV_Say. if it returns zero, normal chat
handling is done, otherwise it's assumed to have been handled by the progs.

provide a hook for unkown user commands. non-zero return means it's been
handled.
2003-11-21 06:09:21 +00:00
Bill Currie
84ea81a770 fix E_POINTER and E_FUNCTION 2003-09-12 23:12:21 +00:00
Bill Currie
8868a9d0bd get rid of some unneeded defines and ifdefs 2003-08-28 23:26:59 +00:00
Bill Currie
fd433442fb allow server clients to be initialized properly (SV_Spawn) and send server
client info to connecting clients
2003-08-21 03:50:30 +00:00
Bill Currie
b3f99a70be rename cl_timeframes to demo_timeframes and make it /not/ archive.
move call to CL_TimeFrames_AddTimestamp from cl_main.c to cl_demo.c.

add a hacky little python script to create a pnm (portable anymap file
format) graph from timeframes.txt
2003-08-12 06:33:13 +00:00
Bill Currie
ada828bdc9 remove a whole swath of potential buffer overflows by removing the buffer.
Also audit a few of the "FIXME: overflow" tags
2003-08-05 01:45:52 +00:00
Ragnvald Maartmann-Moe IV
0a7b56f003 show_fps -> hud_fps, show_ping -> hud_ping, show_pl -> hud_pl,
show_time -> hud_time, show_scoresuid -> hud_scoreboard_uid
2003-07-27 23:20:11 +00:00
Brian Koropoff
9b63402f12 Added llist.[ch], a set of general-purpose linked list routines. Added
cl_chat.[ch] to qw to hold advanced chat features, the first of which is
the ability to ignore chat messages from annoying players.  Some polishing
in this area still remains, but the current implementation seems to work.
2003-07-18 06:27:26 +00:00
Bill Currie
c2c3a62956 nuke Qexpand_squiggle. instead, expand ~ to $HOME on qfs initialization and
cache the value.

don't call Qopen directly in the engine. instead call QFS_Open (generic) or
QFS_WOpen (write only, zip flag).

rework QFS_NextFilename to use a dstring (avoiding a potential buffer
overflow), support 10000 files and work from the top-level fs_userpath
directory. adjust QFS_WriteFile and QFS_WriteBuffers etc to suit.

make sw32 screenshots actually get written.

hopefully everything gets written to the right places :)
2003-05-23 17:17:01 +00:00
Bill Currie
460c8f7f0f mindHog's qfpython patch. GIB info string event callbacks and a compile fix
for broken x11 headers.
2003-05-16 16:17:24 +00:00
Bill Currie
31db390df5 rename cl_overlay_gravity to cl_scoreboard_gravity, rename the hud/sbar,
stuff from cl_* to hud_*, add hud_scoreboard_gravity to nq.
2003-05-09 20:30:50 +00:00
Bill Currie
0a5f3c31eb ping/pl/fps/time now stays put and is now in the client rather than the
renderer (so nq is currently missing it)
2003-05-08 05:49:57 +00:00
Bill Currie
a43d20fffa mindHog's user command patch (with change to builtin name) making the
function generally available (eg, for his python plugin)
2003-04-28 15:56:09 +00:00
Brian Koropoff
e707e9bb89 Moved gib_*.h into include/ and moved the necessary declarations and struct
definitions to QF/gib.h to interface with libQFgib.
2003-04-13 22:07:58 +00:00
Brian Koropoff
c168b40661 Added map::current and map::timeElapsed GIB builtins. 2003-04-13 20:31:06 +00:00
Bill Currie
4c7daebe89 provide SV_UserCmd builtin so progs can emulate a client but use the
engine's physics code
2003-03-10 16:39:40 +00:00
Bill Currie
6c028a57bb bot player stats seem to be working working 2003-03-05 03:56:50 +00:00
Bill Currie
fc7324485e implement SV_AllocClient and SV_FreeClient builtins 2003-03-04 03:35:12 +00:00
Brian Koropoff
34f3970847 Added the "map" GIB event to qw-server. 2003-03-04 03:23:41 +00:00
Bill Currie
389542fda7 first step in creating an interface for the snagging of client slots by
the progs
2003-03-03 17:08:45 +00:00
Bill Currie
1a40e5b6b4 implement WriteBytes for qc 2003-03-02 03:25:47 +00:00
Brian Koropoff
e9b117379f Added client.connect, client.spawn, and client.disconnect GIB events. 2003-02-28 05:09:46 +00:00
Bill Currie
d2edce37a4 give qc access to WriteCoordV and WriteAngleV 2003-02-28 04:59:40 +00:00
Brian Koropoff
760210dc7b GIB: Many bugfixes and cleanups. Added bitwise math operations, expansion
of leaf names in a stem variable via %var, the builtin functions 'count'
and 'contains', and an initial interface between qw-server and GIB to allow
querying of clients and their info strings.  Also cleaned up the chat event
interface a bit.  Renamed a few builtins.
2003-02-16 19:46:34 +00:00
Bill Currie
8ff653a142 forgot to clean up the net headers 2003-02-12 19:41:44 +00:00
Bill Currie
21d8b4f8dc link in hw, move the qw and nq networking code into libs/net and make
hw-master use libnetchan. there are evil include hacks that will need to be
taken care of in net*.[ch]
2003-02-11 22:48:57 +00:00
Bill Currie
f4fdbeee4d make the low level network code and packet logging less incentuous 2003-02-10 21:41:22 +00:00
Bill Currie
761a7546dd re-arrange things so __attribute__ and __builtin_expect are properly
autoconfiscated so rcsid will continue to work with gcc 3.3
2003-01-15 15:31:36 +00:00
Bill Currie
71196fedf6 make gcc more anal about prototypes, string constants and function
visibility (ie, global functions must have a prototype)
2003-01-06 18:28:13 +00:00
Brian Koropoff
c522970a88 Added a GIB event system for registering GIB callback functions to be
started when a named event occurs.  Added a few test events to the qw
client and server.  Cleaned up the range GIB builtin a bit.
2003-01-03 04:30:38 +00:00
Brian Koropoff
714f2ced4c Fixed several GIB bugs, optimized Cbuf_Execute_Stack a bit, changed QW
clients to use a separate buffer for stufftext commands.
2002-12-01 07:22:42 +00:00
Bill Currie
8d35d67997 clean up the multiple definitions of the DF_* flags 2002-11-22 17:45:30 +00:00
Bill Currie
ee30860cef fix a bunch of ;; typos 2002-11-20 21:44:04 +00:00
Bill Currie
ca4b3acd6c big protototype cleanup. Now, except for a few cases, all non-static
prototypes are in headers files.
2002-11-05 19:12:51 +00:00
Bill Currie
9298204208 support tonik's single player/coop qw port 2002-10-24 02:45:16 +00:00
Bill Currie
ef33b9754b support as many packet entities in demos as qwex does (ie, 196). Makes me
wonder if I should make the server support sending 196 packet entities to
qf clients.
2002-10-17 16:03:18 +00:00
Bill Currie
6e015bba1a d'oh, forgot to fix the FIXME :) fixes the seg on demo record start when
more than 1 player is invovled
2002-10-04 03:36:51 +00:00
Bill Currie
212e40b54a mvd recording :) (thanks to qwex 0.165b and highlander) 2002-10-04 02:29:03 +00:00
Bill Currie
30c8646e70 bring in sv_demo.c from qwex. This is only the beginning of the mvd server
side support.
2002-10-03 21:00:35 +00:00
Bill Currie
2383340031 mvd playback support. seems to work (get some weird entities hanging around
but I suspect that's the mod used in the demo I was testing with), but
probably needs some cleanup.
2002-10-02 21:56:45 +00:00
Bill Currie
a6318a3baf enhanced no_pogo_stick control 2002-09-13 04:30:18 +00:00
Brian Koropoff
7f4cd09e9d Removed the old timecheat protection and added a system that adjusts
time to what the server thinks is correct when too much inaccuracy
builds up.  This nearly eliminates all speed cheating, both normal and
reverse, except for a brief burst before the protection kicks in.  Might
need cleaning up/tweaking.
2002-09-12 04:57:40 +00:00
Bill Currie
f6729e35e5 use MAX_CLIENTS instead of 32 for MAX_PHYSENTS 2002-08-29 17:42:41 +00:00
Bill Currie
d8c1c735a6 up MAX_PHYSENTS from 32 to (32 + MAX_PACKET_ENTITIES) (ie, 96). While this
will potentially slow down both client and server, player collision physics
will be more accurate as more entities will be clipped against (and the
client should never complain about physent overflow again).
2002-08-29 17:32:16 +00:00
Bill Currie
a7380fef66 nuke msg_suppress_1 in favor of Sys_DPrintf 2002-08-27 18:05:59 +00:00
Bill Currie
ec47e08e1c go back to using QFile, quakeio.h and quakefs.h 2002-08-27 07:16:28 +00:00
Bill Currie
ad6e025a91 take cmd.[ch] back to basics. the gib code is temporarily gone pending
renovations. cmd_source handling is a little hacky in nq, but it's working.
2002-07-31 05:19:03 +00:00
Ragnvald Maartmann-Moe IV
587de27849 Another step towards QSG2 compliance. 2002-07-25 14:43:36 +00:00
Bill Currie
cb814165f8 allow progs to register user commands (but not override any of the standard
ones (yet))
2002-07-05 06:43:47 +00:00
Bill Currie
a397ef953a Nuke Netchan_AckPacket because it didn't really achieve its goal ('twas a
server bug anyway), broke qizmo (not that I really care: that's still qizmo's
bug) and (most importantly) broke recording demos across map changes.
(Closes: #14)
2002-06-19 19:58:36 +00:00
Bill Currie
5052e3db1f add qsg support for players and actually send EFFECTS2 and FRAME2 for
packet entities
2002-06-19 02:55:57 +00:00
Ragnvald Maartmann-Moe IV
c8bc5dfb4c QSG2 glows almost working. Plus lots of typos killed. 2002-06-18 21:41:24 +00:00
Bill Currie
1747c07da6 rename cl_demospeed to demo_speed and add demo_gzip (yeah, compressed demos) 2002-06-08 23:22:26 +00:00
Bill Currie
e8026d9c76 touch, think and blocked now support methods
also a little whitespace cleanup
2002-05-31 21:05:58 +00:00
Jeff Teunissen
b2579dca98 WOOHOO! The hardcoded framerate cap is gone! cl_maxfps 0 now allows an
unbounded frame rate (you can still set it to clamp your fps to, for example,
your monitor's refresh rate), and cl_maxnetfps 0 is now based on your network
rate.

The NetQuake-compatible targets now also have an unbounded framerate. This is
OK, because the built-in server uses its own tick rate.
2002-04-25 16:50:56 +00:00
Bill Currie
33513ce67b demo autorecord patch from RvB 2002-03-14 18:48:04 +00:00
Bill Currie
3e4c200430 more evil hacks to get nq's and qw's sv_phys.c similar. 2002-02-25 22:57:17 +00:00
Bill Currie
9ea013888b eliminate GetEdictFieldValue, mostly merge SV_AddGravity, and clean up
some whitespace in sv_phys.c
2002-02-25 07:44:17 +00:00
Bill Currie
96d3a997c9 bring sv_phys.c closer to being mergable. I've temporarily(?) disabled
Maddes' max velocity `fix' (yeah, it's physicly correct, but...). I'll
probably cvar it.
2002-02-22 05:28:17 +00:00
Bill Currie
5a1c0af8ca more cloning :) 2002-02-20 20:53:41 +00:00
Bill Currie
8ee5acb208 redo Sys_Error so it's more usable throughout quake 2002-02-20 19:22:52 +00:00
Bill Currie
013f503738 start getting const-correct on vec3_t params 2002-01-03 05:29:38 +00:00
Ragnvald Maartmann-Moe IV
d4a8224d9b Change hudswap to use a callback, and instead of passing a swap variable to 10 functions, where only 2 use it, use a global variable. Make a few scr functions static inline, too. Got a totally unexpected ~0.45fps speedup. 2001-12-09 14:05:30 +00:00
Bill Currie
d4df29de02 cl_paranoid: setting to 0 will disable printing the server address for
connectionless packets
2001-12-05 21:56:52 +00:00
Bill Currie
44b36e4d6b sadly, I have to revert my low-copy code. it doesn't gain /enough/ to be
worth the bugs it's introduced (it's extremely difficult to do both low-copy
/and/ correct entity updates).
2001-12-03 05:36:39 +00:00
Bill Currie
6a51021f86 low-copy networking code. gives about 3-4% speed boost to overkill (null
renderer).
2001-12-01 22:16:50 +00:00
Bill Currie
06622fa164 -mem now also works as a cvar (and there was much rejoycing:). sv_mem_size
(server) and cl_mem_size (client), in megabytes (ie, same as -mem). I haven't
done nq yet as I'm uncertain what to /call/ it :)
2001-11-14 20:18:37 +00:00
Bill Currie
fe50e4b1e5 cache the cshifts serverinfo value for further reduction of Info_ValueForKey
calls.
2001-11-11 07:02:38 +00:00
Bill Currie
c5aec15569 This prepares for moving the net_svc code to a branch allowing both network
code cleanups and general performance work to be developed in relative peace.
While cleaning up the networking code /is/ important, fixing QF's perfomance
issues is of much higher priority.
2001-11-07 08:24:56 +00:00
Adam Olsen
e0dfa2b453 - convert ALL the remaining svc's on the client. woot, hehe 2001-11-05 20:13:27 +00:00
Adam Olsen
ded1b4c057 - add some missing boundschecking to CDAudio_Play's track remap (in
specific plugins only)
- convert updateping, updatepl, updateentertime, updatestat,
  updatestatlong, cdtrack intermission, finale, muzzleflashchokecount,
  maxspeed, entgravity, and setpause on the client.  Can you say all
  that in one breath? :)
2001-11-05 16:17:45 +00:00
Adam Olsen
d693bc27ff - merge the svc_strings arrays for cl_parse.c and net_packetlog.c into
net_svc.c, and add add a NET_SVC_GetString function to access it.
  As an added bonus, it actually boundschecks it!
- preexpand that annoying SHOWNET macro, which was only used twice,
  and was quite small and pointless
- whitespace cleanup and a comment typo fix
2001-11-05 07:53:03 +00:00
Adam Olsen
87a0a4d7d6 - a TODO item
- converted svc_packetentities and svc_deltapacketentities
- added some convenience defines for U_foo grouping
- tweaked Host_NetError's "please report this" print, but it still
  doesn't work
2001-11-04 21:23:22 +00:00
Bill Currie
7c5c53774f cache some info strings (team and skin from client user info) and values
(no_pogo_stick and teamplay from server info) to cut down on the calls to
Info_ValueForKey (from over 550k to 23.5k in spam2.qwd).
2001-11-04 19:06:50 +00:00
Bill Currie
dcd9b0040e rewrite the info strings to use hash tables instead of a static string.
This required changes to the api (info_t instead of char *) but should be
a net gain in speed (not a lot, admittedly: it was pretty fast to begin
with, but this paves the way for some other changes I have in mind).
2001-11-04 07:50:39 +00:00
Adam Olsen
c5f4af0109 - convert svc_playerinfo, cvs_nails, svc_modellist, and svc_soundlist 2001-11-03 10:48:55 +00:00