Commit Graph

166 Commits

Author SHA1 Message Date
Bill Currie fa58b795f2 except for packet logging, netchan is much cleaner (no more cls in the
server!)
2004-02-19 08:58:42 +00:00
Bill Currie acd54afff7 move to using a hash table for builtin number -> builtin lookup so sparse
ranges can be used efficiently. move the auto-allocated builtins to
0x10000000-0x7fffffff. should be more than enough :)

use static builtin tables ("nul" terminated) instead of a series of
function calls to add builtins to a vm. should be more memory efficient.
2004-01-06 05:51:09 +00:00
Bill Currie dfc83c1f5f add PR_PushFrame and PR_PopFrame so temp strings are easy to use for
parameters to progs functions.

double the progs stack sizes (call depth of 32? eek)

allow one extra call on the progs stack :)

misc minor cleanups
2004-01-05 07:10:32 +00:00
Bill Currie 53e382d3f8 fix an incorrect parameter bug found by Grievre 2003-12-06 05:06:27 +00:00
Bill Currie 5a49e9fea4 fixed an uninitialized variable. took reordering operations a bit to do so 2003-11-21 20:04:16 +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 0a8867fde9 replace all VectorSubtract (vec3_origin, ... and
VectorCopy (vec3_origin, ... with VectorNegate (... and VectorZero (...,
respectively. Should be a small speedup.
2003-09-03 22:17:04 +00:00
Bill Currie db3e98ce75 make the waterjumptime <-> teleport_time interface work as intended 2003-08-27 23:11:57 +00:00
Bill Currie 0d438e255d allow server clients to be tracked while spectating 2003-08-25 01:11:23 +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 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 5808d08858 whitespace. 2003-06-03 06:01:47 +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 63c804310c more inline avoidance 2003-05-07 04:24:50 +00:00
Bill Currie 18ae5b7513 compile fixes for the alpha 2003-04-28 21:02:03 +00:00
Bill Currie c6094b9cea mindHog's patch for making Hash_DelElement work the way he wanted it to 2003-04-28 19:55:03 +00:00
Bill Currie 0985c90ce9 hash.h:
write some docs on mixing (eg) Hash_Add and Hash_DelElement
sv_user.c:
	fix a warning
2003-04-28 16:04:22 +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
Bill Currie e732cf591d remove all references to OFS_* from the C code. only the macros in progs.h
use them now
2003-04-22 18:20:15 +00:00
Bill Currie eb099ae0d3 make qf gcc 3.3 clean 2003-04-17 00:01:48 +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
Bill Currie b80357afda change _FOpenFile to take a dstring for foundname plugging a potential
buffer overflow.
2003-04-09 05:55:41 +00:00
Ragnvald Maartmann-Moe IV 5fb8aa07f3 Code style, people. Love it or leave it! 2003-03-21 21:25:44 +00:00
Bill Currie 0f119c7cdb don't bother lowercasing download filenames now that they're forced
lowercase during the precache stage
2003-03-13 16:33:29 +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 389542fda7 first step in creating an interface for the snagging of client slots by
the progs
2003-03-03 17:08:45 +00:00
Brian Koropoff e9b117379f Added client.connect, client.spawn, and client.disconnect GIB events. 2003-02-28 05:09:46 +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 6a687f5e45 rename all the globals in quakefs.[ch] to be QFS_* or qfs_* 2003-02-14 19:46:07 +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 b668134f25 reset the client's msecs when resetting the rest of the network stats 2003-01-30 20:31:44 +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 33365ef00d Hurricane's patch for correcting time kick. (Closes: #67) 2003-01-10 18:09:09 +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
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 212e40b54a mvd recording :) (thanks to qwex 0.165b and highlander) 2002-10-04 02:29:03 +00:00
Bill Currie 5397ca66ca bring back the timekick code but make it an alternative (default) to the
new timecheck code.
2002-09-27 03:32:20 +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 ec47e08e1c go back to using QFile, quakeio.h and quakefs.h 2002-08-27 07:16:28 +00:00
Ragnvald Maartmann-Moe IV 0085cd698f Lots of whitespace in sv_user.c, plus fix sv_timekick help strings, and up sv_timekick_fuzz from 15 to 30 ms. 2002-08-22 23:04:44 +00:00
Bill Currie 5f4c21d796 casting from (signed) char to int does not one whit of good towards avoiding
the problems associated with signed chars being used to index arrays. must
cast to usigned char so the bit expansion is done on an unsigned value to
avoid the sign extension.
2002-08-02 03:22:32 +00:00
Brian Koropoff 439f9838d3 Whoops, missed some stuff that needed to be in idparse.h 2002-07-31 22:13:15 +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
Bill Currie 7e052a5cc7 certain standard user commands (eg, say) can now be overriden by the progs,
but only once (ie, it's an error for the progs to try to add a command twice)
2002-07-05 21:15:19 +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 7ab3095024 back out Misty's realtime reset work. It did achieve its goal, but winding
realtime back caused the problems with clients not reconnect on map change
and after my preliminary mucking around with time, I'm convinced there's a
better way.
2002-06-20 16:15:27 +00:00
Ragnvald Maartmann-Moe IV 632683e703 Change `sv_maxrate 0` to unlimited. Change default to 10000. Remove forced ceiling of 10000. 2002-06-17 16:18:34 +00:00
Timothy C. McGrath bd82405643 Fixed automatic muting/mute to work properly with realtime resets.
Timothy C. McGrath (Misty)
2002-06-06 23:05:57 +00:00
Timothy C. McGrath 8f2b541b25 This fixes cuffs so they work with realtime resets.
Tim McGrath (Misty)
2002-06-06 22:41:34 +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
Bill Currie 44a905e98c forgot to delete the (commented out) calls to Cmd_Process 2002-04-20 03:22:14 +00:00
Bill Currie 4ccc9d6322 dstring.c dstring.h:
add dstring_replace. this replaces a string of lenth rlen at position
	pos with data of lenth len, growing, shrinking and shuffling data as
	appropriate. At this rate, the dstring `class' will get buffer gap
	editing capabilities :)
cmd.c:
	Cmd_TokenizeString builds cmd_active_buffer->line again.
	Cmd_Process bails out instantly if cmd_active_buffer is a legacy buffer
	and uses dstring_replace to modify the parameters in
	cmd_active_buffer->line. This last change results in drastic
	simplification (and accuracy) of the commandline reconstruction code,
	both in Cmd_TokenizeString and Cmd_Process.
2002-04-19 22:54:27 +00:00
Bill Currie 1ff8c715b9 currently, Cmd_Process needs to be called after Cmd_TokenizeString, even
for legacy buffers. I'm not terribly happy with this, but it fixes the
broken "say" problem.
2002-04-19 21:18:25 +00:00
Brian Koropoff 676bf39d9d Beautified GIB, improved looping and backtraces slightly. Old buffers are
now recycled, not freed.  Fixed some bugs in exp.c.  Ready to add embeded
functions (read: function calls with return values) and for loops.
Probably some other misc. fixes, I tend to go on debugging streaks.
2002-03-27 06:24:19 +00:00
Brian Koropoff 8d124f9c2b Implemented variable substitution and did various cleanups to the parser.
Changed Cmd_TokenizeString to accept a flag that controls the application
of filters (tags, variables, escape characters) to the tokens and modified
a few places in the source that called it.  Added a secondary command
buffer that is parsed without filters for legacy command support.
Currently, it is only used for commands stuffed into the console from the
server.  It is hacky, and I hope to eventually generalize the console
interface to support any number of buffers and audit the rest of the code
to recognize it.  For now, the legacy buffer at least keeps escape
character parsing from destroying info strings.
2002-03-03 23:28:57 +00:00
Bill Currie da1f9fcf44 cut&paste + 1am = crippled quakeguy. d'oh :P 2002-02-25 17:41:21 +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
Ragnvald Maartmann-Moe IV 2db08923e8 MSG_(Read|Write)(Coord|Angle|CoordAngle)V. Cleanups, and preparation for use of vector ops in msg.c. 2001-12-12 21:56:09 +00:00
Ragnvald Maartmann-Moe IV f66b7a93e5 Major particle interface cleanup, several bugfixes, and minor performance improvements. Oh, check out "/help easter_eggs" (gl-only, at the moment). 2001-12-11 22:37:30 +00:00
Bill Currie c130d38c6c fix more bugs caused by the Hunk_TempAlloc changes and do some more jump
prediction fixes for msg_t and sizebuf_t
2001-12-03 22:11:21 +00:00
Bill Currie 4dfc6b1285 don't bother speed cheat checking spectators (does it /really/ matter?) and
don't use va for SV_BroadcastPrintf.
2001-11-20 01:13:30 +00:00
Bill Currie fade981a40 spelling and grammar corrections to the spead cheat message 2001-11-16 04:41:39 +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
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
Adam Olsen d7e5f88ee3 - conver svc_spawnstaticsound, svc_updateuserinfo, svc_setinfo,
svc_serverinfo, and svc_download

I havn't tested svc_download, since I don't want to play with having
seperate dirs for the client vs server on one computer.
2001-11-02 14:52:29 +00:00
Adam Olsen a77619f665 - convert svc_damage and svc_serverdata emitting 2001-11-02 08:10:41 +00:00
Adam Olsen 2bbb759232 - change the sv_kickfake default to 0, so it replaces \r with #
instead of kicking
2001-10-31 00:30:31 +00:00
Bill Currie 85c9e0ab1e more externs cleaned up 2001-10-29 17:46:03 +00:00
Bill Currie 78a3e398d5 * taniwha gets medieval on extern 2001-10-28 04:23:37 +00:00
Adam Olsen 18036b63d9 - change MSG_ReadString to return const char * and return a pointer
directly into the packet data.
- change a bunch of char *'s to const char *'s for the above.  Only
  thing that had trouble was the cl_nofake handler, which I changed to
  use a local buffer.
- add MSG_ReadStaticString which acts like the old MSG_ReadString,
  specifically that it uses a static buffer and tollerates
  unterminated strings.
- add a Q_strnlen function, and make strnlen use it if strnlen is
  undefined.
- Add a net_svc.h and net_svc.c which will preparse svc messages into
  structs, for easier handling.  Currently only soundlist and
  modellist are done.
2001-10-18 04:44:58 +00:00
Bill Currie b1f4a778f9 the rcsid commit from hell }:> 2001-09-28 06:26:31 +00:00
Adam Olsen a159e852e6 - add some comments to libs/console/inputline.c
- rename pr_deadbeef to pr_deadbeef_ents
- add pr_deadbeef_locals, which does uninited locals.  (crashes from
  it are undeniably buggy code, unlike pr_deadeef_ents)
- add a missing break to packetlog printing's switch
- add sv_kickfake, which kicks people for attempting to fake messages,
  or replaces the ^Ms with # if disabled.
2001-09-23 00:36:21 +00:00
Bill Currie 410783025e misc fixes forwarded from 0.3 2001-09-11 06:04:10 +00:00
Bill Currie 74e9f89e8c forward port the client info string filtering from 0.3 and remove info.h from
a couple of c files that no longer need it.
2001-09-11 03:10:29 +00:00
Bill Currie 882adf295a implement KK's ban, mute and cuff 2001-09-09 04:51:08 +00:00
Bill Currie fb42199637 change all the SVFIELD calls to SVtype. this should make the code a little
easier to read.
2001-08-08 20:28:53 +00:00
Adam Olsen 513347effd Fix that classic "playing without joining a team" TF cheat :) 2001-08-01 00:38:16 +00:00
Bill Currie fb26d8b18a make Info_Set* take flags indicating wether funchars should be stripped or not 2001-07-31 18:27:49 +00:00
Bill Currie 6cb2cb5bdc start making the rotated bounding box (really dynamic clipping huls) more
generice, and also more in line with the rest of quake's clipping system
(ie, support the entity size selected hulls). I'm not /entirly happy with
what's here, but it's a start, and the force fields in customtf work /much/
better :)
2001-07-30 04:33:59 +00:00
Bill Currie 65475fbd6e make a rotated_bbox override the model hulls 2001-07-27 19:48:15 +00:00
Bill Currie c834185fbb forgot to clear pe->hull if rotated_bbox is non-existant or 0 2001-07-27 02:45:01 +00:00
Bill Currie 6000b06de3 support arbitrary hulls for players, too 2001-07-26 21:37:34 +00:00
Adam Olsen 725653ce2a Delete the check in download file names for a leading slash, since
it's harmless and some maps (such as engwar1) use it.  (the map may
be considered broken because of it, but everything ELSE works fine
with a leading slash, since it's relative anyway)
2001-07-26 15:50:54 +00:00
Adam Olsen 8fc5e5e372 replace strncmp (name, "maps/", 6) with strncmp (name, "maps/", 5) 2001-07-25 23:59:56 +00:00
Bill Currie d12a0a930d return of UserInfoCallback is now ignored and SV_Userinfo_f just returns as
PR_setuserinfo now does the extract from userinfo.
2001-07-24 22:11:44 +00:00
Bill Currie 77694855e7 fix some off-by one errors I induced last night 2001-07-22 18:44:55 +00:00
Bill Currie 735cd909c0 make SV_Prespawn use the backbuffers if needed to help prevent overflows 2001-07-22 06:55:09 +00:00
Adam Olsen 1422163099 Minor typo fix ("(%d0" to "(%d)") 2001-07-22 04:53:19 +00:00
Adam Olsen 43c8763de0 change host_client to sv_player. I *hope* this is the right thing. 2001-07-20 08:08:46 +00:00
Bill Currie cf10da8120 fix the double "foo changed name to bar" messages for foo 2001-07-20 05:35:55 +00:00
Bill Currie 743fd9cc19 rename SetUserInfo to UserInfoCallback.
set self to the client entity for UserInfoCallback.
add void (entity ent, string key, string value) setinfokey = #102;
	similar usage to infokey.
2001-07-20 05:05:47 +00:00
Bill Currie d30f1ee0c2 add an /optional/ SetUserInfo qc callback to allout the progs to take over
userinfo setting.

float (string key, string value) SetUserInfo;

key = infostring key
value = new value
returs: 0 for key not changed, non-0 to broadcast the change
2001-07-20 04:30:33 +00:00
Bill Currie 1c9e1b176f fear the mighty const correct patch 2001-07-15 07:04:17 +00:00
Bill Currie 7a06a2254a rename the Con_Printf in sv_send.c to SV_Printf and change all the calls to
Con_Printf in the server code to SV_Printf.
nuke Con_DPrintf from sv_send.c
2001-07-11 23:11:29 +00:00
Bill Currie ecff96258f cmd.[ch]:
api change: Cmd_Args () now takes a parameter inidcating which arg to
	start at for grabbing the un-parsed command line
qw/source/sv_ccmds.c:
	implement kk's tell command and user name matching (though # is used for
	the wildcard and it's still case sensitive)
everything else:
	adjust for the new Cmd_Args protype
2001-07-10 18:25:54 +00:00