Commit graph

589 commits

Author SHA1 Message Date
Brian Koropoff
cb79de3584 Completely redid the way embedded functions are subroutines in general are
handled, meaning that execution can be paused at any time without a hitch.
Warning: This is a major change to the architecture (or lack thereof) of
GIB.  Please test for bugs!  Also, there are a few ugly bits of code that
need to be cleaned up, but that work for now.
2002-04-16 23:56:21 +00:00
Jeff Teunissen
a4f3973ef1 Add multitexture support for Alias models, and disable the multitexture
support for BSP models, until they can be fixed. gl_multitexture should now
actually be a speedup!

NOTE: Some OpenGL implementations have trouble with the texture function
used. 3Dfx Voodoo 1/2 are known to have this trouble. I don't know how to fix
this, or even if it can be fixed. :/
2002-04-16 16:51:35 +00:00
Brian Koropoff
503dab1aee The tokenizer will now not break tokens appart within quotes or braces.
This means things like echo ~{somefunc arg1 arg2} will get parsed properly
without having to enclose it in quotes.  Exported the Cmd_Return function
so that anything can return values to GIB (such as quakec).
2002-04-14 01:12:19 +00:00
Bill Currie
8220ddd83d and the command api to csqc and use it to bind menu_load and menu_save. F2
and F3 now work in nq :)
2002-04-12 17:19:49 +00:00
Brian Koropoff
93c9f96416 Added embedded commands with ~{} and the return command, created a token
structure to help tidy the command buffer struct up a bit, fixed a few
bugs and probably created 100 more.  A lot of things were changed to
allow embedded commands:
- Old buffers on the stack are left alone for Cbuf_ExecuteStack to
clean up.  This is so return values can be extracted from them.
- The imperative flag has been added.  An imperative buffer and all buffers
following it can not be paused with the wait command.
- The returning flag and retval dstring have been added.  If a buffer
returned something, the flag will be set.
- The return command was added so there was something to use in the
substitution.  Return nukes all loop buffers since they don't really count
as independent functions, sets the return value on the top buffer, and
clears it.
- Who knows what else.
2002-03-29 07:43:02 +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
e1b61d2116 Changed how looping works, fixed echo to work with taniwha's Cmd_Args
changes, added the != operator for math evaluation, added break command
to break out of loops early, added ifnot command, and who knows what else.
2002-03-22 00:22:03 +00:00
Bill Currie
d00d6a539a add dstring_insertsubstr 2002-03-21 21:53:52 +00:00
Bill Currie
c1deee9955 rework cmd_buffer_t->line and cmd_buffer_t->args building so quotes are
preseved
2002-03-21 21:17:31 +00:00
Bill Currie
b7fc784718 add dstring_appendsubstr 2002-03-21 21:16:26 +00:00
Bill Currie
6f1b68aeb4 sys.h:
define SYS_CHECKMEM macro to ease memory allocation failure detection
cmd.c:
	loads of whitespace
2002-03-21 19:47:31 +00:00
Brian Koropoff
d5fad096c0 Added local variables and replaced %-substitution with local variables.
Made variable substitution recursive, so ${${foo}} will be the value of
the variable whose name is contained in foo.  Added setl command to
manipulate local variables.  The only other place they can be used is in
variable substitution.
2002-03-20 04:24:31 +00:00
Bill Currie
5f2dea43f6 break the dependency between cmd.h and dstring.h 2002-03-18 16:47:04 +00:00
Brian Koropoff
46cc4ac9dd Fixed some bugs and generalized the command buffer interface. Allowed for
buffers to be linked into execution stacks and changed aliases and script
files to be run in a new stack frame.  Cbuf_Execute executes the stack from
the top down, so wait commands are handled properly.
2002-03-18 04:12:09 +00:00
Brian Koropoff
f4180e7ad8 Added math evaluation, the ability for commands to span multiple lines
within braces, and put support for comments back in (oops).  To use math
evaluation, put a math expression inside $().  If you have spaces in your
expression, you'll need to enclose the entire thing in quotes so it doesn't
get split up into multiple tokens.
2002-03-17 06:57:03 +00:00
Robin Redeker
757556022b 1. general menu code cleanup
2. added lots of comments to my menu code
3. wrote a string hash api (key -> value assignment list)
Hm, nothing else afaik. ;)
2002-03-16 15:52:17 +00:00
Bill Currie
180c517771 signal handling improvements 2002-03-13 19:20:57 +00:00
Bill Currie
6cefb63e2e get back to work on creating a good command line pak file util. currently
only dumps the file names/sizes and segs if it's used incorrectly, but it's
a start.
2002-03-12 23:45:36 +00:00
Bill Currie
1d420edcd0 start work on instrumenting GLstub.so 2002-03-11 23:55:50 +00:00
Bill Currie
5a2538faaf dstring.[ch]:
create dsprintf and dvsprintf to do formated prints to dynamic strings.
rest
	Use the new functions :)
2002-03-08 23:11:42 +00:00
Bill Currie
8f7f646d19 white space 2002-03-05 22:36:04 +00:00
Brian Koropoff
e0e9084ad7 Merged in the new command parser. No major bugs or incompatibilities could
be found.
2002-03-05 21:51:12 +00:00
Bill Currie
544ca8118a "gib" never got all that useful, and with the new command parser coming in
and csqc, it's pretty obsolete, too.
2002-03-05 21:47:03 +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
Brian Koropoff
557846b220 This is the first commit to the newcmd branch, which is a mostly-rewritten
console command parser.  It will eventually include html-like tags for
modifying text (gold numbers, brown characters, etc) and escaped characters.
The major differences so far are that dynamic strings are now used instead
of static buffers, and single quotes can be used to enclose tokens as
well as double quotes.
2002-03-03 03:36:27 +00:00
Bill Currie
009e6346fe now, so long as ulimit allows it, we can always get a core dump. Looks a
little odd:

Received signal 11, exiting...
IN_Shutdown
IN_LL_Shutdown
VID_Shutdown
Segmentation fault (core dumped)

but the core file does accurately show the error
2002-02-27 06:55:21 +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
b6c331736a give nq host_mem_size so -mem can be a cvar (similar to sv_mem_size and
cl_mem_size in qw).
2002-02-19 20:47:45 +00:00
Robin Redeker
f8452e5d26 Added declarations for QC-Keys-API. 2002-01-31 21:09:36 +00:00
Bill Currie
d1460f6166 rename the width parameter to lsize as it's the size of the input line, not
the drawn width
2002-01-30 21:23:46 +00:00
Bill Currie
6d63d1d55b implement comparisons and not for pointers 2002-01-30 21:20:12 +00:00
Bill Currie
c76f7d88ce fix an API snafu (oops:) 2002-01-30 08:09:53 +00:00
Bill Currie
c66bc5a6eb whitespace 2002-01-30 06:29:32 +00:00
Bill Currie
8561dfa93a basic resource management system for the VM 2002-01-30 06:21:20 +00:00
Bill Currie
0ea713eda4 redo the progs loader to allocate all the memory needed for progs in one
shot, allowing for caller specified alloc and edicts and zone memory sizes.
(progs + edicts + zone).
2002-01-29 20:53:44 +00:00
Bill Currie
6f29bcb238 break the loop from CRC_Block into CRC_ProcessBlock so that crcs can be
caclulated over multiple blocks.
2002-01-28 18:00:48 +00:00
Bill Currie
21b6e68a8c break out the non-edict code into sensible locations 2002-01-28 17:15:36 +00:00
Bill Currie
750100b3e3 obsolete declaration cleanup and const correctness for Key_GetBinding 2002-01-25 00:01:05 +00:00
Bill Currie
85588c8fcb start implementing the api for input lines and clean up a couple csqc
prototype issues.
2002-01-23 22:37:44 +00:00
Bill Currie
68637eea9e start implementing dynamic memory for progs 2002-01-23 22:35:48 +00:00
Bill Currie
ad8b5670e2 prototype Z_ClearZone 2002-01-23 22:34:46 +00:00
Bill Currie
00b1ea4340 remove obsolete function 2002-01-23 22:34:08 +00:00
Bill Currie
52aa1c311b qfcc now supports typedef 2002-01-23 21:16:43 +00:00
Bill Currie
3f958ae29b more make dist fixes 2002-01-22 18:04:03 +00:00
Bill Currie
d936d5d1d5 fix a missing ; 2002-01-22 03:05:48 +00:00
Bill Currie
3ae15803fa protect against gcc 2.94.4's stdbool.h 2002-01-21 20:00:38 +00:00
Bill Currie
20eec42a93 allow keys.h to be used in QC 2002-01-21 19:10:01 +00:00
Bill Currie
5b0e6dc342 add file and string modules to csqc. the file nodule is rather parnoid
about the path it's handed (need to get even more paranoid, though). the
string module just has char replacement so far. Add Draw_CenterPic to
r_progs.c, but this will only last till qpic_t is supported in qc.
the load menu almost works: just need to add key handling and fix a bug in
PF_sprintf
2002-01-21 07:24:51 +00:00
Bill Currie
e8f6fced0b call BI_Init in the clients 2002-01-20 04:10:36 +00:00
Bill Currie
1168f1aa86 libQFcsqc (I'm not adverse to renaming it) is born. so far, only provides
Cbuf builtins.
2002-01-20 04:09:36 +00:00
Bill Currie
14ac3acc17 add a builtin (gametype) for detecting the, well, game type (ie, netquake
or quakeworld) which just returns the apprproate string. the single player
menu is now acessable in nq but not qw :)
2002-01-20 03:09:03 +00:00
Bill Currie
35de51ee31 the quit menu works now. however, quit from the console doesn't 2002-01-20 00:06:08 +00:00
Bill Currie
6af9a5d8e6 make the builtins an array of pointers so the hash table doesn't get royally
screwed up
2002-01-19 03:31:51 +00:00
Bill Currie
fcc9cbf3b7 the main menu page now displays and can be entered/left. K_ESCAPE is now
handled exclusively by the console.
2002-01-18 23:45:28 +00:00
Bill Currie
10acad1ee4 first tie-in for the renderer (Draw_Pic: the interface will likely change
to better match the real interface, but this will do for now)
2002-01-18 22:35:46 +00:00
Bill Currie
ac71d101d2 menu code now gets initialized (menu_init in the progs). 2002-01-18 22:02:59 +00:00
Bill Currie
bb96a5b736 first use of client side QuakeC :) (and having more than one progs instance
seems to work, too). The menu code gets loaded, but is currently otherwise
unused as of yet.
2002-01-18 19:19:33 +00:00
Chris Ison
e3b2bfb81a clear key states on game start 2002-01-17 22:04:58 +00:00
Bill Currie
c86c5a78bf finally, the client console is merged 2002-01-16 21:53:42 +00:00
Seth Galbraith
778af4276e external tga skin loading, doesn't work for players (teamcolor stuff) 2002-01-16 20:32:39 +00:00
Bill Currie
9dedd21158 start getting the shared console code working 2002-01-16 16:27:56 +00:00
Seth Galbraith
93116bc827 external mip texture loading 2002-01-16 01:02:50 +00:00
Chris Ison
6073ff8d58 added Draw_nString for displaying a non \0 terminated string 2002-01-09 21:20:22 +00:00
Bill Currie
72d6f34dc8 first step to using a saner internal represnetation for the high precietion
models.
2002-01-07 06:32:46 +00:00
Seth Galbraith
6ec47e6be6 slaying hardcoded mdl vertex and triangle limit 2002-01-04 07:40:00 +00:00
Bill Currie
9312681182 some more const correctness (in gl_sky_clip.c) and make the sky poly debug
drawing avialable via the gl_sky_debug cvar.
2002-01-03 18:18:45 +00:00
Bill Currie
013f503738 start getting const-correct on vec3_t params 2002-01-03 05:29:38 +00:00
Seth Galbraith
d570f0905f high precision model loading 2001-12-30 02:30:26 +00:00
Ragnvald Maartmann-Moe IV
94b1683862 Rest of previous commit. 2001-12-28 18:19:23 +00:00
Bill Currie
ee9ed0c395 minor cleanups 2001-12-21 21:52:03 +00:00
Ragnvald Maartmann-Moe IV
010ca032a5 Allow arbitrary power of 2 sizes for tga texture loads, reduce memory footprint needed to load rgb tgas. Speed load of non-RLE tgas.
Some slight code sanity improvements.
2001-12-21 01:41:19 +00:00
Ragnvald Maartmann-Moe IV
c764ddc64a Just a massive speedup to gl particles. Enjoy.
(Thanks to LordHavoc for prodding me to use glDrawElements, and munge all the particle textures into 1. Code mine, suggestions his)
2001-12-19 04:03:57 +00:00
Chris Ison
1c26723864 changed int to an unsigned int 2001-12-17 23:41:58 +00:00
Bill Currie
3dafbebf10 fix up #0 builtin functions at runtime. not done automaticly (need to call
PR_RelocateBuiltins) and fix a bug with profiling and unlimited execution
counts
2001-12-14 08:15:04 +00:00
Bill Currie
9b4e21a914 minor prototype cleanups 2001-12-14 00:06:58 +00:00
Bill Currie
218554d60a move include/QF/string.h to include/qstring.h and include it automaticly if
needed in compat.h
2001-12-13 20:44:32 +00:00
Bill Currie
b3843f7f5b draw.h:
remove dead Draw_TransPic prototype
draw.c:
	really don't draw spaces in Draw_AltString
2001-12-13 19:13:22 +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
Bill Currie
8ddce20949 pr_*: add storep.p so pointers can be stored into entities
emit.c: convert & (address) to . in unary .
        rewrite emit_assign_expr
expr.c: remove debug code and make unary . less agressive on address calcs
        also convert & (address) to . for lvals
2001-12-12 20:35:58 +00:00
Bill Currie
f9149a0d6c finally get around to renaming type_name to pr_type_name 2001-12-12 17:15: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
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
d344aea51f store.p so pointers can be moved around 2001-12-08 21:43:44 +00:00
Bill Currie
00b2a45ecd change the operator for "address" from "." to "&" so load.p can be implement.
this makes it so pointers in entities work.
2001-12-08 20:17:20 +00:00
Bill Currie
b03a1bee42 ok, structures seem to generate correct code now 2001-12-08 08:19:48 +00:00
Bill Currie
028f8a116d immidiate indexed pointer access and some whitespace + reorg 2001-12-07 20:07:38 +00:00
Bill Currie
f6ef79b7e3 cleanup skin's namespace polution 2001-12-04 20:13:12 +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
650d682d2c fix some nasty security holes causes by oversized connection strings. slows
down overkill slightly :/
2001-12-03 21:06:57 +00:00
Bill Currie
4f2f686834 r_netgraph_alpha works again 2001-11-30 03:51:43 +00:00
Bill Currie
12a0a10d33 more alpha portability fixes 2001-11-29 19:35:25 +00:00
Bill Currie
f7c90759af clean out the non-renderer fields from entity_t. not yet a noticable gain
but more work needs to be done on the linking code in the client. However,
there /does/ seem to be a slight gain with possibly less variance.
2001-11-27 21:42:49 +00:00
Bill Currie
4689350283 fix qport 2001-11-27 04:50:41 +00:00
Bill Currie
e99b422628 extinguish gl_fires. it's semi-broken, generally nasty (code wise) and
kinda tacky. also results in a slight speed boost:)
2001-11-25 06:24:26 +00:00
Ragnvald Maartmann-Moe IV
087f7d8520 Header fixes for previous updates. 2001-11-24 08:43:20 +00:00
Bill Currie
bd0ac4a38a merge Mod_LoadSpriteFrame from gl and sw back into the common sprite loader
pulling the gl specific code (the loading of the texture into GL) into
a separate function (Mod_SpriteLoadTexture), which is just a stub in sw
2001-11-22 05:31:44 +00:00
Bill Currie
0be2a31f2e lots of code cleanup. Merge Mod_LoadAllSkins, merge the sw32 model loading
code into the sw model loading code, remove all refs to r_pixbytes from the
sw renderer (it was never anything but 1), kill libQFmodels_sw32, remove
all the 16 bit code from the 8 bit sw renderer.
2001-11-21 19:13:53 +00:00
Bill Currie
7d14013041 fix many, many bugs in the alias skin loading, transforming and rendering
code. This fixes blather's `melted models' (sw), the nq alt player model
skins (gl), the arbitrary limits on skins and skin groups in gl, and the
incorrect timing of group skins (animated) in gl.
2001-11-21 08:14:05 +00:00
Bill Currie
ec75b71711 don't bother with fullbright skins for models that are allways fullbright and
clean up a misplaced function prototype
2001-11-20 08:45:26 +00:00
Bill Currie
5dab7ccaf7 precalculate smoe model specific info (wether the whole model is fullbright,
if it should have shadows, whether it should be scaled/translated (gl eyes),
and the minimum lighting (player)). give a 1.9% speedup in null renderer.
2001-11-20 08:02:35 +00:00
Chris Ison
c72e2ef324 re-enable 8bit textures 2001-11-14 21:01:10 +00:00
Bill Currie
07b59d2f07 pr_comp.h:
o	add OP_JUMPB
	o	OP_JUMPB renumberd some opcodes, so up PROG_VERSION
pr_edict.c:
	o	make the version error reporting more informative
pr_exec.c:
	o	implement OP_JUMPB (goto *(ptr + index))
pr_opcode.c: (libs/gamecode/engine)
	o	add OP_JUMPB to the table
expr.h:
	o	ex_uinteger support
	o	some const correctness
	o	prototype new_label_expr
qfcc.h:
	o	uinteger ussport
	o	add pointers for op_jump and op_jumpb
	o	prototype PR_GetArray
emit.c:
	o	general uinteger support
	o	new reference/reloc type 3: absolute statement address
	o	jumpb support (binary goto)
expr.c:
	o	uinteger support
	o	break the label name creation out of new_label_expr into
		new_label_name
	o	some const correctness
pr_def.c:
	o	add PR_GetArray to allocate an array in global space
	o	factor out some code common to PR_GetDef and PR_GetArray that would
		otherwise be duplicated
pr_imm.c:
	o	some const correctness
	o	uinteger support
pr_lex.c:
	o	uinteger support
pr_opcode.c: (tools/qfcc/source)
	o	support jump and jumpb
switch.c:
	o	rewrite the binary search code to support ranges.
2001-11-13 08:58:54 +00:00
Bill Currie
d27cd9cc21 s/type_size/pr_type_size/
remove the redundant type_size from qfcc
2001-11-12 23:56:46 +00:00
Bill Currie
e4fd746f71 this adds some stats to hash tables and a command to get at them for commands
and aliases
2001-11-10 01:13:29 +00:00
Bill Currie
928d343295 pr_comp.h:
o	add ev_uniteger to the types enum
	o	add opcodes for ifbe, ifb, ifae, ifa, jump, lt.ui, gt.ui, le.ui, ge.ui
progs.h:
	o	add uinteger accessors
pr_exec.c:
	o	implement ifbe, ifb, ifae, ifa, jump, lt.ui, gt.ui, le.ui, ge.ui
pr_opcode.c:
	o	add opcodes for ifbe, ifb, ifae, ifa, jump, lt.ui, gt.ui, le.ui, ge.ui
expr.h:
	o	prototype inc_users
qfcc.h:
	o	add externs for op_ifbe, op_ifb, op_ifae and op_ifa
emit.c:
	o	don't bother emiting an assignment to a temp def that's only used once
		(ie, it's never read, only written to)
	o	support the new if* instructions
expr.c:
	o	support the new if* insructions
	o	dectect expression loops in append_expr
	o	support unsigned integers
	o	re-work temp def usage counting
pr_def.c
	o	debugging for temp def usage counts
pr_opcode.c:
	o	support the new if* instructions
qc-parse.y:
	o	provide defines for IFBE IFB IFAE IFA
switch.c:
	o	do binary searches for strings, floats and ints if there are more than
		8 cases in a switch. Strings need more testing.
2001-11-09 00:58:16 +00:00
Brian Koropoff
ccd665e80c This commit removes maplist.c and replaces it with filelist.c, which
contains general functions for creating lists of a type of file and
provides the commands maplist, skinlist, skyboxlist, and demolist.
2001-11-06 07:14:29 +00:00
Bill Currie
15b381909e move maplist from quakefs.c to console/maplist.c. Unfortunatly, until the
client console plugin is usable, this means the clients link maplist.o
directly.
2001-11-05 22:24:16 +00:00
Bill Currie
b286afc7f7 don't install skin_stencil.h 2001-11-05 16:22:03 +00:00
Brian Koropoff
008b59b777 The beginnings of an f_* reply system have been added. f_version works
like normal, f_skins reports the average percent fullbright for all loaded
skins, and f_skins skinname reports the fullbright percent for a signle
skin.  cl_freply controls the time in seconds before another query can be
made.  Set it to 0 to disable them.  More queries will be added later.
The table for accessing special characters from the console has been
tweaked a bit.  Expect it to get tweaked more in the future.
2001-11-05 07:23:51 +00:00
Bill Currie
dc779acdb5 build the texture chains such that they get rendered front to back. seems to
only get about 0.17% speedup in overkill (with just about every thing off),
but it might make more of a difference in-game.
2001-11-05 06:20:35 +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
Bill Currie
9209138fac nuke the max message lengths from qdefs.h 2001-11-03 00:27:01 +00:00
Bill Currie
5bf5278c2b pr_comp.h:
- new opcodes for pointers
progs.h:
	- prototype PR_Check_Opcodes
pr_edict.c:
	- move the static bounds checking to PR_Check_Opcodes in pr_opcode.c
pr_exec.c:
	- vector instruction cleanup
	- temporarily nuke bounds checking from storep.*
	- move base of address results from pr->edicts to pr->pr_globals
	- implement new pointer related instructions
	- nuke proposed global pointer instructions (not flexible enough)
pr_opcode.c:
	- add new pointer instuctions
	- re-implement static bounds/invalid opcode checking. no more multiple
	  case statements to keep track of.
2001-11-02 22:41:11 +00:00
Ragnvald Maartmann-Moe IV
7ea1051b9a Code cleanups. 2001-10-30 19:55:34 +00:00
Bill Currie
85c9e0ab1e more externs cleaned up 2001-10-29 17:46:03 +00:00
Bill Currie
3ce8029f74 fix a silly goof with the models 2001-10-28 05:43:53 +00:00
Bill Currie
ccfe82cda4 *taniwha mops up the last drops of blood from extern 2001-10-28 04:38:24 +00:00
Bill Currie
78a3e398d5 * taniwha gets medieval on extern 2001-10-28 04:23:37 +00:00
Brian Koropoff
05f35f9cd4 This adds the ability to access special characters in console commands by proceeding certain characters with $. See libs/util/cmd.c for the conversion table. Preceeding a character by # will shift it up or down by 128, which basically is useful for accessing the brown letters and numbers. All special characters were removed from Team_ParseSay, and variable substitution now takes the form of ${var} to prevent conflicts with special character substitution. Special character access is controlled by cmd_highchars, which defaults to off. 2001-10-27 04:34:53 +00:00
Bill Currie
f8a41cb1bc completely nuke the concept of "priority" from opcodes and use get_op_string
in emit_sub_expr instead of a redundant switch.
2001-10-25 17:48:35 +00:00
Bill Currie
b5341f0d13 we now compile and link with -fno-common. this cleans up the multiple,
uninitialized declarations of variables.
2001-10-23 16:55:23 +00:00
Bill Currie
b6ad2223d2 attempt to handle the byte swapping of screenshots seen on voodoo2s in
windows
2001-10-22 19:46:34 +00:00
Chris Ison
e69ade675e some fixes for WINAPI 2001-10-21 21:23:45 +00:00
Bill Currie
bc5a7f9799 it seems to help if GLAPIENTRY is actually getting defined to something
usefult. -wgl no longer dies now, though I still get a black screen (palette
init issues:)
2001-10-21 02:41:20 +00:00
Bill Currie
6c0d760102 msg.h:
give mst_t a buffer to hold unterminated message strings
	kill MSG_ReadStaticString and MSG_ReadStringLine
msg.c:
	kill MSG_ReadStaticString and MSG_ReadStringLine
	MSG_ReadString: implement the buffer for unterminated message strings
	and update readcount on badread
cl_main.c:
	go back to MSG_ReadString and fix up the resulting const char * issues
cl_parse.c:
	rewrite the cl_mofake code all because of an uninitialized variable :)
sv_main.c:
	use MSG_ReadString instead of MSG_ReadStringLine because
	Cmd_TokenizeString really doesn't care about a terminating \n
2001-10-18 06:23:26 +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
41a50d8a9b add some missing headers to include_HEADERS 2001-10-15 23:47:31 +00:00
Bill Currie
460a270a54 fix some init order issues brought up by the new gl_funcs.c code. 2001-10-15 19:06:22 +00:00
Bill Currie
fd25261ab3 hopefully better win32 dynamicly loaded gl support. if nothing else,
gl_funcs.c is easier to read :)
2001-10-15 18:24:30 +00:00
Bill Currie
e97e06fe44 byte to int + xmms playlist support from _Muz_ 2001-10-12 19:26:56 +00:00
Bill Currie
742bb9de91 static plugins now actually work 2001-10-10 16:22:41 +00:00
Bill Currie
eee1aaf283 static plugins (--with-static-plugins to force on, --without-static-plugins
to force off, defaults to off for *nix and on for win32). does not work yet
due to lack of support in libs/util/plugin.c, but that's next.
2001-10-10 05:52:14 +00:00
Ragnvald Maartmann-Moe IV
c26b10d479 Don't get excited yet, rest of new explosions isn't going in for a while. 2001-10-09 20:41:39 +00:00
Ragnvald Maartmann-Moe IV
9cc671e6d2 Try #2.
Change r_maxparticles from short to unsigned int.
Make MAX_DLIGHTS into a cvar, r_dlight_max that sets the unsigned int r_maxdlights.
2001-10-09 20:35:17 +00:00
Bill Currie
36508058ea QFPLUGIN now does the __declspec stuff and all plugins now use it on their
plgin info function. doesn't actually /work/ yet :(
2001-10-08 05:54:46 +00:00
Bill Currie
3a366f4f7e break out the backtrace code from PR_RunError into PR_DumpState and use
PR_DumpState instead of PR_RunError in seg_fault_handler so we get both a
progs trace /and/ a core file (ulimit allowing)
2001-10-08 03:46:44 +00:00
Ragnvald Maartmann-Moe IV
d657a590b5 Clean up extern functions, update noise_diamondsquare to match LordHavoc's fractalnoise. 2001-10-06 00:39:22 +00:00
Adam Olsen
0785610296 - fix a little mistake in SV_PrintToClient that'd cause it to
segfault if your first call was with "".  Probably could cause
  crashes too
- add a string.c file to libQFutil, with a Q_strcasestr function,
  which strcasestr is defined to if it's not already defined.  (we'd
  get that with glibc if we defined __USE_GNU, but we don't)
- make client_t and SV_ExtractFromUserinfo both use NAME_MAX for
  their name arrays, instead of 32 for one and 80 for the other
- rewrite almost all of SV_ExtractFromUserinfo's name handling.
  - \r, \n, and \t are all converted to spaces
  - leading/trailing spaces are stripped
  - consecutive spaces are reduced to a single space
  - empty names are considered bad
  - user-* nicks are considered bad (unless forced to them)
  - a name containing console or admin is considered bad
  - a name that already exists is considered bad
  - if they have a bad name it gets forced to user-%d, where %d is
    their userid
  - netname in the progs is now updated properly
  - name changes are always reported unless it's the initial setting,
    rather than only if they're full connected and not a spectator
  - finally, if the name change fails (info string exceeded), give
    them the boot.  (before this was only done for duplicate names)

That's about it :)
2001-10-04 19:11:39 +00:00
Bill Currie
1929797cc9 get nq-server so it runs. part of this involved renaming cl_warncmd to
cmd_warncmd
2001-10-03 21:25:43 +00:00
Bill Currie
95d3600452 fix skybox/skydom map vis issues. I hope this works on all drivers. 2001-10-03 02:51:30 +00:00
Bill Currie
40d0490b7c add Hash_GetList to get a list of elements in the hash table (unsorted) 2001-10-02 23:17:25 +00:00
Bill Currie
4699bf6d5b files under inclue/QF are not allowed to include files from include (eg,
including config.h is a nono).
2001-10-02 21:14:11 +00:00
Ragnvald Maartmann-Moe IV
820fcbb8d2 R_Mirror-related cleanups, and some whitespace. 2001-10-02 06:13:22 +00:00
Bill Currie
53529ae940 output window now updates when resizing, but it doesn't /quit/ work properly
(issue with starting line).
2001-09-30 05:59:33 +00:00
Bill Currie
138a4a1c14 rename console_t to old_console_t in preparation for a better version and
temporarily disable the client console plugin as it currently doesn't
compile.
2001-09-29 04:24:04 +00:00
Bill Currie
c7031b20f3 move vid_fullcreen definition from *.c to vid.c and declaration from
context_x11.h to vid.h and remove all extern decls from *.c
2001-09-28 16:54:31 +00:00
Bill Currie
cb4f7eb808 various input line improvements 2001-09-26 16:31:36 +00:00
Bill Currie
06da30ac89 mingw build fixes again (including mostly working in sid: got some link issues) 2001-09-25 06:18:30 +00:00
Bill Currie
36de3c147e move Sys_Quit and Sys_Error totally into libQFutil. They will call a list
of pre-registered (Sys_RegisterShutdown) function before actually exiting
the program. This should take care of the pain when an ncurses server
crashes.
2001-09-24 21:00:23 +00:00
Ragnvald Maartmann-Moe IV
d247027954 Use a callback for gl_multitexture which sets gl_mtex_active (now a qboolean, rather than a macro). 0.6-1.0% speedup. 2001-09-23 03:24:23 +00:00
Adam Olsen
07b0d91900 - add a NUM_FOR_BAD_EDICT function, which doesn't care if it's a bad
value
- switch some prints over NUM_FOR_BAD_EDICT
- change NUM_FOR_EDICT to call PR_RunError on error, instead of
  PR_Error.  That was it prints out a backtrace.

(I did it in reverse order ;)
2001-09-23 01:29:52 +00:00
Bill Currie
49a85718f8 total nukage of Con_*Printf calls from libs (except for video). Sys_*Printf
(Sys_DPrintf is new) is now used exclusively for all lib printing. Con_Init
sets the sys printf recirection to Con_Print (which has been revamped
appropriatly) and the server sets it to SV_Print (which was SV_Printf and
the new SV_Printf calls /it/). This should fix the rcon print redirection
issues.
2001-09-21 04:22:46 +00:00
Bill Currie
bdf45386f0 some minor work getting the client side of libQFconsole working, but nowhere
near complete.
2001-09-19 03:39:04 +00:00
Bill Currie
dd98622859 x11 vid_fullscreen improvements from james (thanks) 2001-09-18 04:53:01 +00:00
Bill Currie
aade80a8d7 /finally/, libQFconsole is being used (qw-server only so far). Still has
some minor nits with ncurses and probably has some isues without ncurses
(quit didn't seem to work when I tried).
2001-09-16 05:41:28 +00:00
Ragnvald Maartmann-Moe IV
431ac4eedb Convert particles to use byte colors instead of float. Roughly breaks even on Mesa on my machine. Should be a speedup under other drivers. 2001-09-14 12:11:54 +00:00
Bill Currie
def8bb3cd5 LordHavoc's VectorIsNull changes from 0.3 but as VectorIsZero (no such thing
as a `null' vector) plus a couple of other bits from his patch.
2001-09-11 05:18:15 +00:00
Bill Currie
a046592741 make dist fixes 2001-09-11 03:42:03 +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
3a9191760f some minor improvements 2001-09-07 00:11:22 +00:00
Ragnvald Maartmann-Moe IV
419585b6f2 Obvious optimization missed by a certain tired coder. Thanks to LordHavoc for pointing it out. 2001-09-06 01:09:51 +00:00
Bill Currie
008d80df67 s/IMT_DEFAULT/IMT_0/g for the constant and move the name-enum entry for
IMT_DEFAULT to the bottom of the list so that IMT_0 gets written as such
rather than IMT_DEFAULT.
Also, clean up nq's EF_* dlight creation a bit (haven't touched
EF_MUZZLEFLASH: undecided on what to do).
2001-09-05 21:22:55 +00:00
Adam Olsen
9ab9764b7a - Change QA_alloc to use variable-arguments, allowing for a much more
extensible interface.
2001-09-05 18:23:38 +00:00
Ragnvald Maartmann-Moe IV
55f0fed0b6 Replace lhrandom with qfrandom, a different convenience macro with better random number distribution (see man 3 rand). 2001-09-05 06:20:45 +00:00
Adam Olsen
f1a016c8a5 - Refine the Cache_Get callback, to use a void * instead of a char *
- Switch alias models over to Cache_Get/Cache_Release
2001-08-31 12:22:45 +00:00
Adam Olsen
6cab8cf4e0 - change Cache_Get calls to Cache_TryGet (which I just added), so they
can tollerate failure.
- minor error message tweak (an emptry string is not NULL!)
2001-08-31 03:48:26 +00:00
Bill Currie
7aa5ab75de header dep cleanup and IN_LL_Commands is /gone/ 2001-08-30 20:32:27 +00:00
Bill Currie
822e637e11 s/_windowed_mouse/in_grab/ and in_grab and in_dga now use callbacks 2001-08-30 20:04:13 +00:00
Adam Olsen
e149094bd2 - rename Qalloc and friends to QA_alloc
- add a QA_strdup
- add Cache_{Add,Remove,Get,Release}, for the locking version of the
  cache
- Convert libs/audio/* over to locking cache functions
2001-08-30 11:37:50 +00:00
Bill Currie
0d55476711 make VectorSubtract and VectorCompare macros and clean up the readability
of R_DrawParticles
2001-08-29 20:19:54 +00:00
Bill Currie
3656d6fd59 compile fixes for win32 and take the pruning shears to *sys*.c in qw and nq
(they're not done yet, though)
2001-08-29 17:45:53 +00:00
Adam Olsen
f423b8a8e0 Preliminary Qalloc implimentation. Not yet used. 2001-08-29 04:52:03 +00:00
Bill Currie
13ecebd6a0 make Z_Malloc and friends more useful by allowing multiple zones 2001-08-28 05:21:30 +00:00
Bill Currie
2f9fd74a31 zone.c gets its name back 2001-08-28 04:24:40 +00:00
Bill Currie
3edd4550d2 heh, nor do we need PROGHEADER_CRC 2001-08-27 21:13:00 +00:00
Adam Olsen
36786400ad Doh, need this header change to compile. 2001-08-26 10:13:03 +00:00
Ragnvald Maartmann-Moe IV
c6266aba36 sw32. Flee in terror. This'll break compilation for everything until -sdl32 compiles. sw32 wont work for a while either, so don't get overly excited yet. 2001-08-25 02:47:11 +00:00
Adam Olsen
cad42cbc78 Put the sound renderer in it's proper place: as a full-fledged plugin.
Bugs expected.  Please report them :)
2001-08-23 04:01:46 +00:00
Adam Olsen
17ba7ef92f - move alot of the builtins to libQFgamecode_builtins
- move the init into qw and nq
2001-08-22 03:24:25 +00:00
Adam Olsen
1314c89b6c - add libs/gamecode/builtins subdir, with libQFgamecode_builtins.la
- add .gitignore files
- fix building :)
2001-08-21 22:34:20 +00:00
Ragnvald Maartmann-Moe IV
36395e1681 Minor comment updates, Imt->IMT in a few function names, and accel->amp for input amplification (once known as sensitivity). 2001-08-17 07:26:01 +00:00
Zephaniah E. Hull
80696badc7 kgt->imt, and imt now displays the current IMT. 2001-08-17 07:06:01 +00:00
Adam Olsen
62813111a0 yet more IE stuff 2001-08-16 23:34:49 +00:00
Adam Olsen
92729ff6b2 More changes to input events 2001-08-16 22:27:22 +00:00
Adam Olsen
916b503f14 Some basic stuff for input events. Not yet used. 2001-08-16 21:08:17 +00:00
Bill Currie
b0cb351fba bind and unbind wrappers for in_bind and in_unbind. old configs/mods are
still currently broken because I need to translate key names still.
2001-08-16 19:10:35 +00:00
Zephaniah E. Hull
20adccc9e4 A few things, first is that I removed the (rather broken) serial
networking support.

Second, I moves keys.c from qw and nq to libs/video/targets when I did
the next thing.

Existing user configs which do binds, sledge hammer. Sledge hammer,
existing user configs which do binds. *WHACK* *WHACK* *WHACK*

See, much nicer now.

Someone should document it, and fix all targets which don't use SDL for
input. (I honestly don't expect svgalib and the like to ever be fixed.)
2001-08-16 09:19:36 +00:00
Bill Currie
9ee3450265 extend the hash api to more easily support general cases 2001-08-16 02:51:53 +00:00
Zephaniah E. Hull
8f011f91ec Length is now a #define, not a bloody function! 2001-08-15 23:01:56 +00:00
Jeff Teunissen
61bb65fa3f Committing some old stuff I hadn't before. This one: removing a variable
name from a prototype.
2001-08-15 22:29:09 +00:00
Ragnvald Maartmann-Moe IV
cddaa521cc Change loadas8bit to snd_loadas8bit. 2001-08-15 00:53:37 +00:00
Bill Currie
dd16a1c4d5 call the IE init ans shutdown functions. still need to rework the rest of the
intput system to use it.
2001-08-14 00:03:03 +00:00
Bill Currie
07a09e0812 statement printing now infers the type of a def from the instruction where
possible, thus allowing anonymous defs to print their contents.
2001-08-13 23:49:04 +00:00
Bill Currie
283b0e1a21 change the types of the statement operands to unsigned short to clean up
most of the uses
2001-08-13 21:09:00 +00:00
Bill Currie
2a6830d2d8 revised dynamic string handling. allows for `bounds checking' 2001-08-13 20:01:37 +00:00
Bill Currie
bbef4b0b6f ugh, I hate the need for this, but it's needed. sv_old_entity_free is my
compromise :) set it to 1 to allow progs like MegaTF to work (reload crash).
2001-08-12 04:14:25 +00:00
Adam Olsen
6414897dae got a few new operators for qc :)
<< >> % which all act like their C counterparts
+= -= *= /= &= ^= |= <<= >>= %= which just expand into the obvious,
also like the C versions.
2001-08-10 16:17:00 +00:00
Ragnvald Maartmann-Moe IV
b868a09661 Kill off gl_view.c and sw_view.c. Renderer merge is more or less complete now. Software and gl renderers now calculate color shifts the same way, and sw looks a bit different now. Powerups don't shift enough in sw right now, IMO. 2001-08-10 00:28:57 +00:00
Bill Currie
ac9dace768 add focus loss/gain events and fix a silly bug in IE_Set_Focus 2001-08-09 23:43:13 +00:00
Bill Currie
bc34529a80 code for the input event system 2001-08-09 23:16:54 +00:00
Bill Currie
c96a092f4e header for an event based input system 2001-08-09 22:35:41 +00:00
Bill Currie
081d8f3c47 ^ and ~ operators for qc (^ from Rhamphoryncus) and clean up the punctuation
line in qc-lex.l (why didn't I think to do that in the first place?!?)
2001-08-09 16:34:46 +00:00
Bill Currie
dcc6a76313 make SURF_LIGHTBOTHSIDES work and fix a bug in Mod_PointInLeaf that was
preventing grenades from lighting up surfaces when using the vis lighting
2001-08-05 05:59:15 +00:00
Bill Currie
647d38fa40 Make R_MarkLights use the vis info to speed things up. Oddly, even though
R_MarkLights is now about 3% instead of about 15%, I've lost 8 fps on my
null GL speed test. However, R_AddDynamicLights has jumped up a bit, so I'm
wording if maybe more surfaces are being lit.
2001-08-05 04:01:45 +00:00
Adam Olsen
dc98a63098 Add a getfunction, which gives an error if it's not found 2001-08-04 23:44:50 +00:00
Bill Currie
f9e85cdf8a split up mleaf_t's minmaxs into two arrays 2001-08-03 23:54:09 +00:00
Adam Olsen
ae133d0a90 Modify progs to add builtins at runtime. It should be trivial to
lookup functions by name, and make all our new QC builtins allocate
numbers automatically.
2001-08-03 06:40:28 +00:00
Bill Currie
fe8738b042 make dist works again 2001-08-01 17:49:25 +00:00
Bill Currie
22878209d6 move the forward decl of hashtab_s out of the function prototype 2001-08-01 06:51:06 +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
c248372e20 Initial integer type support. qfcc /is/ partially broken when it comes to
integer constants and float function args/return values.

pr_comp.h:
	o  add the integer opcodes to pr_opcode_e
pr_edict.c:
	o  add "quaternion" and "integer" to type_name[]
	o  support quatnernion and integers types when printing values
	o  support the integer opcodes when bounds checking
pr_exec.c
	o  enable the integer opcodes
pr_opcode:
	o  add the integer opcodes to the opcode table
	o  logical operators all result in an integer rather than a value
expr.h:
	o  rename int_val to integer_val
qfcc.h:
	o  kill another magic number
expr.c:
	o  move the opcode to string conversion out of type_mismatch and into
	   get_op_string
	o  rename int_val to integer_val
	o  general integer type support.
	o  generate an internal comipiler error for null opcodes rather than
	   segging.
pr_imm.c:
	o  rename int_val to integer_val
	o  support integer constants, converting to float when needed.
pr_lex.c:
	o  magic number death and support quaternions and integers in type_size[]
qc-lex.l
	o  rename int_val to integer_val
	o  support quaternion and integer type keywords
qc-parse.y:
	o  rename int_val to integer_val
	o  use binary_expr instead of new_binary_expr for local initialized
	   variables
builtins.c:
	o  rename int_val to integer_val
	o  fix most (all?) of the INT related FIXMEs
defs.qc:
	o  use integer instead of float where it makes sense
main.c:
	o  read_result is now integer rather than float
main.qc:
	o  float -> integer where appropriate
	o  new test for int const to float arg
2001-07-23 01:31:22 +00:00
Bill Currie
22c9716b56 rename int_var to integer_var 2001-07-22 20:20:46 +00:00
Bill Currie
d6f82b6370 make Qwrite's buffer pointer const. 2001-07-22 18:38:59 +00:00
Bill Currie
55ac55c7ac rename ev_int and ex_int to ev_integer and ex_integer. create type_integer
and def_integer (do I need that?), clean up and or coment on XXX and FIXME
2001-07-22 06:59:12 +00:00
Bill Currie
7e8c75f7c9 forgot to commit this 2001-07-22 03:23:15 +00:00
Bill Currie
46176e1094 azerty kb patch from Filip Van Raemdonck <mechanix@digibel.org>. includes some
misc fixes, too
2001-07-19 21:46:34 +00:00
Bill Currie
edcc313501 debug info for local variables is now used. only works when tracing atm:/ 2001-07-19 07:27:14 +00:00
Adam Olsen
a771b5bd6c Make edicts command support a search string, so it only prints edicts
with matching classnames.  Makes it easy to print out the type you want
for debugging :)
2001-07-19 03:18:11 +00:00
Bill Currie
e9ed59ec27 add an integer type. not yet properly supported 2001-07-18 15:40:32 +00:00
Bill Currie
02e021a958 get the progs /loader/ name and prototype sorted out properly 2001-07-18 02:21:57 +00:00
Bill Currie
159bc6147c create an "input line" object for the console so Con_ProcessInput can be used
in verious contexts
2001-07-17 16:46:51 +00:00
Bill Currie
bab80a0648 move the special keys out of the way of ascii codes (unless they represent
ascii codes (eg, K_ENTER)) and remove the magic number for the number of keys.
2001-07-17 15:51:56 +00:00
Bill Currie
fcaa687d56 plugin.h:
enable the cd_data_t entry so func and data structures are consistent.
cd.h:
	create cd_data_t (empty)
console.h:
	better understanding of how these things work :)
2001-07-16 23:17:52 +00:00
Bill Currie
104701a8c5 the beginnings of the console lib (using plugins for the client/server type
consoles). Currently, doesn't affect anybody other than the need to
re-bootstrap.
2001-07-16 20:41:10 +00:00
Bill Currie
1c9e1b176f fear the mighty const correct patch 2001-07-15 07:04:17 +00:00
Bill Currie
66c8f00dc7 print out source line numbers when available 2001-07-14 23:53:59 +00:00
Bill Currie
f4976e8133 more const correctness 2001-07-14 23:50:18 +00:00
Bill Currie
2818d720c2 move the full info opcocde table from qfcc to gamecode (<KURGON>There can be
only one!</KURGON>:) and use the table in PR_PrintStatement. This means that
qfcc now links against libQFgamecode as well as libQFutil
2001-07-14 02:34:16 +00:00
Bill Currie
eae97539c2 beginnings of debug info for progs 2001-07-13 06:08:50 +00:00
Bill Currie
7ca4383790 move a Key function out of console and into keys.
replace a Con_Print call with Con_Printf ("%s", ...) (I want to make Con_Print
private)
2001-07-11 19:17:58 +00:00
Bill Currie
f9f31ad4b3 ncurses console for the server. input handling is currently a nasty bit of
code duplication, but it seems to work nicely (except for cursor movement
keys) and even gives tab completion to the server :)
2001-07-10 22:36:22 +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
Bill Currie
9aeef3f3d6 rename qfont_table to sys_char_map and make it global (and constant) 2001-07-10 15:59:25 +00:00
Bill Currie
6cda415f06 slight api change: Hash_Del now returns a pointer to the element deleted, or
null if the element was not found, rather than 0 and -1 respectively.
2001-07-06 17:43:47 +00:00
Bill Currie
fc09d2b00f port Bruce Momjian's patches from newtree with a less incestuous
implementation of his sound/focus patch. NOTE: only alsa 0.9 is tested
(Rhamph, can you test 0.5, please?) and only the alsa drivers stop the
hardware right ow.

WARNING!!! you /will/ have to re-install your plugins, or you will get
segfaults when the window gains/loses focus.

How do you tell if a window has focus on first mapping in X11?
2001-07-05 20:18:23 +00:00
Bill Currie
c38ca8e2f1 qfplist.h:
remove include of glob.h. not needed and causes win32 build to fail
plugin.c:
	include compat.h and cast the return of GetProcAddress
gl_funcs.c:
	fix parse error and type mismatch
qfgl_ext.c:
	half re-write QFGL_ExtensionAddress to use QFGL_ProcAddress
vid_wgl.c:
	fix for the new gl linking
2001-07-05 17:28:19 +00:00
Bill Currie
e5e289e994 this brings back knghtbrd's Sys_Printf redirection, but in such a way that
Sys_Printf still has the format attribute. To redirect Sys_Printf, declare the
redrecting function as void (const char *, va_list) and call Sys_SetPrintf
with this function as its parameter.
2001-07-05 04:59:43 +00:00
Bill Currie
e659c2a44f revert kntbrds recent sys changes as they break sw static builds 2001-07-05 00:12:43 +00:00
Joseph Carter
eb71edb5d4 taniwha, please have a look at this to make sure I'm doing it the "right"
way..  Sys_Printf is now Sys_StdPrintf for now.  Sys_Printf is a function
pointer and will end up replacing Con_Printf as well.  Names will change
to something intelligent when I'm done.  Win32 is not yet touched, but I
haven't forgotten it.

The reason for this is the assumption that Con_Printf and Sys_Printf do
not overlap.  The new server console WILL change that, requiring that we
change how we handle both functions.  The plan:  Default to using stubs
and swap them for full-featured functions on Console init which do all
the things we expect.  Will also do a stderr version later.
2001-07-02 18:11:34 +00:00
Bill Currie
c350bb2b1b a slight oopsie on the location of WriteFloat and friends :P plus nq is now
endian/size clean.
2001-06-29 06:50:29 +00:00
Bill Currie
f61ca0e321 fix the persistent fires. For sanity's sake, the non-renderer specific parts
of gl_dyn_fires.c have been moved to r_main.c (for now).
2001-06-29 02:43:04 +00:00
Bill Currie
443196e66b very nice command line tab completeion from Shawn Walker
<eviltypeguy@qeradiant.com>
2001-06-28 04:05:14 +00:00
Bill Currie
66a524d7bf correct the prototype for QFGL_ProcAddress 2001-06-27 17:55:41 +00:00
Bill Currie
3268fcbe02 add quaternion type (not yet supported in the code). Forgot to commit this
last night.
2001-06-26 14:14:47 +00:00
Zephaniah E. Hull
908d265212 Clean up and repair of the run time linking, does NOT work until deek
commits his gl_funcs.c.
2001-06-26 02:26:46 +00:00
Jeff Teunissen
59ae0114df Whoops! Let's try commiting the headers this time. :) 2001-06-25 06:29:07 +00:00
Jeff Teunissen
3fbfa27fcd Woohoo. The QFGL_* function prefixes are gone again from the tree. It
might even work under Windows now, but don't get your hopes too high. :)
2001-06-25 06:17:07 +00:00
Zephaniah E. Hull
3715430479 This is changing more then I wanted to at once, however.
The major change is that we no longer require libGL to even exist on the
system at compile time for the GL targets, we dynamicly link to the
libGL of choice at run time. (This probably breaks most non-linux
systems, and all GL targets except -glx, some fixup will be needed.)
(This also kills glquake, dead dead DEAD! GONE FOREVER! WHEE!)

Some gl_draw cleanup.

Commented out equake alias model occlusion test stuff, very experimental.

Added the .lo and .la patterns to the .gitignore files.

Some minor sbar cleanup. (We don't use the disc in use symbol for
anything.)
2001-06-24 09:25:55 +00:00
Jeff Teunissen
118645fd51 Property list updates. Objects of type QFDictionary are now hash tables
(and thus have a new simpler PL_ObjectForKey() function to get a value for
a key). Also, you can now call PL_FreeItem() on a plitem_t to free a
property list item and all of its descendants (if it has any).

Binary plist values are still not supported.
2001-06-19 02:10:47 +00:00
Bill Currie
3a94567913 Make Hash_FlushTable loop safe and correct the copyright notices 2001-06-19 02:01:18 +00:00
Bill Currie
f4969d5d67 add some docs for the hash table api and move the include of stdlib.h to
hash.c (no longer needed in hash.h).
2001-06-11 19:37:25 +00:00
Bill Currie
75fbb80b96 make the hash table types opaque 2001-06-11 19:17:40 +00:00
Chris Ison
f600e7c9f9 raised console buffer size 2001-06-09 16:34:13 +00:00
Bill Currie
bbc97079e0 pr_comp.h:
define PROG_ID_VERSION as 6 and redefine PROG_VERSION as 0x00fff001
	(0.fff.001) for the new qc features.
pr_edict.c:
	support version 6 and version 0.fff.001 progs
qfcc.h:
	add version field to options_t
	add min_version field to opcode_t
pr_opcode.c:
	set the minumum version of each opcode (gee, that table is getting ugly)
	filter out opcodes with too high a min_version when initializing the opcode
	hash tables.
qfcc.c:
	update help output.
	accept --id to limit code generation to id compatable (ver 6) progs.
	default progs generation to 0.fff.001
2001-06-09 06:25:33 +00:00
Bill Currie
b9f35283f4 make dist fixes + a --disable-asmopt fix for mingw 2001-06-08 02:47:30 +00:00
Bill Currie
62c783f47a eval_t is no more: too many evil casts involved in using it (which can result
it bad code being generated by gcc).
2001-06-08 00:13:06 +00:00
Bill Currie
2bc94ea66f progs.h:
add no_exec_limit field. Set to 1 to disable the runaway loop check
	for unlimited runs (eg, in qwaq)
pr_exec.c:
	don't bother checking the profile counter if pr->no_exec_limit is set
pr_strings.c:
	free unreferenced dynamic strings rather than referenced.
2001-06-06 18:10:47 +00:00
Joseph Carter
4a0d453b48 The gfx.wad error is now idiotproof! 2001-06-05 08:39:27 +00:00
Bill Currie
8c92504fd1 add a sentinal `type' for type counting purposes 2001-06-04 17:51:39 +00:00
Bill Currie
e339e82c01 hash.h is now const correct as is a lot of qfcc 2001-06-04 04:52:14 +00:00
Bill Currie
275e74161b string comparison operators 2001-06-04 03:36:35 +00:00
Bill Currie
bd4abbab06 give the opcodes a type 2001-06-03 19:32:50 +00:00
Bill Currie
09118bc01e pr_comp.h:
add OP_ADD_S. WARNING!!! this /will/ move.
progs.h:
	add prototype for PR_PrintStatement
pr_edict.c:
	add OP_ADD_S support in the progs checker
pr_exec.c:
	implement OP_ADD_S
tools/qfcc/include/.gitignore:
	add config.h.in
qfcc.h:
	nuke PR_NameImmediate and change PR_ParseImmediate's prototype (see
	pr_imm.c)
pr_comp.c:
	add ADD_S, adjust for PR_ParseImmediate's prototype, make
	PR_ParseExpression work with non-sequential opcodes (slow, will work on
	that next). Fix up initialised global parsing.
pr_imm.c:
	nuke PR_NameImmediate. didn't work well and wasn't such a good idea anyway.
	PR_ParseImmediate now accepts a def_t * arg. if null, will allocate a
	new global def, otherwise it will initialize the def passed in.
qwaq/main.c:
	sports some debugging code (dumps info about the progs it's running)
qwaq/main.qc:
	better ADD_S testing
2001-06-03 17:36:49 +00:00
Ragnvald Maartmann-Moe IV
85333a9f96 Convert cd audio libs to plugins. Windows untested, dos and sgi not converted yet. 2001-06-01 22:55:33 +00:00
Bill Currie
323015b11a include/QF header cleanup. including config.h (or any file from include) is
a nono because headers in include/QF get installed, but include don't and thus
would break quakeforge-dev.
2001-05-31 05:33:13 +00:00
Bill Currie
6bf58ab1af no header includes cvar.h now 2001-05-31 03:41:35 +00:00
Bill Currie
940598f240 merge pcx.c, tga.c and wad.c. util seemed the most logical place, but LoadPCX
had to be modified to get away from vid.h (better designe now IMO anyway)
2001-05-30 20:56:53 +00:00
Joseph Carter
05adfd0e53 quakefs.h -> vfs.h
quakeio.h -> vfile.h

More diff reduction between trunk and my VFS code.  Also took the time to
put some headers in order and fix a few #include's pointed out by moving
things around a bit.
2001-05-30 04:34:06 +00:00
Joseph Carter
186d577818 s/QFile/VFile/g - makes my diffs much smaller and more manageable for the
VFS work.
2001-05-30 03:21:19 +00:00
Bill Currie
f0cfc46cb7 model.h:
add a crc field to aliashdr_t
model_alias.c:
	set it for all models
cl_parse.c:
	set the pmodel and emodel info keys to the crcs of the player and eye
	models
2001-05-29 17:37:48 +00:00
Bill Currie
04d4df1e19 fix nq's skin code so it doesn't upload skins every frame 2001-05-27 04:23:39 +00:00
Chris Ison
14fc2d0b6c added GPL comments and fixed missing include in gib_modules.c 2001-05-25 20:31:47 +00:00
Joseph Carter
c5735d2f19 A little sanity in gib's header deps. Not much granted, but it's there. 2001-05-25 16:09:14 +00:00
Joseph Carter
9788b579c5 Modify the hack used by qpic_t slightly. This is not over, but this will
do for now.  A full texture_t should eventually replace qpic_t/glpic_t..
2001-05-25 10:40:30 +00:00
Bill Currie
a87c4bbd93 vid.c:
Don't bother checking vid_gamma for CVAR_ROM becuase it is impossible to
	get to VID_UpdateGamma when it is set except for when the cvar is
	initially created, and we /want/ the code to execute in that case.
vid.h:
	add initialized to viddef_t
vid_common_gl.c:
	actually /use/ gammatable (it tends to help)
vid_*.c:
	clean up rendundant decls of gammatable, vid_initialized (now
	vid.initialized) and make sure vid.initialized gets set.
gl_view.c:
	remove gammatable decls
2001-05-25 04:03:47 +00:00
Bill Currie
f83b9be0ba remove redundant vid_gamma_avail decls 2001-05-24 23:49:28 +00:00
Bill Currie
1a25bc9349 gl_screen.c and screen.c are now client clean (and merged :) 2001-05-23 06:33:23 +00:00
Bill Currie
ec7335029d gl_draw.c is now client clean. 2001-05-23 04:05:10 +00:00
Bill Currie
c500fd7479 make dist fixups 2001-05-22 17:09:03 +00:00
Zephaniah E. Hull
f25cea4112 Actually compile, oops. 2001-05-22 12:03:44 +00:00
Zephaniah E. Hull
5245f56012 Validate userinfo strings on connect. (Part of a nasty DOS fix.) 2001-05-22 12:00:45 +00:00
Bill Currie
4a80639556 sw and gl rmisc are now client clean. the graphing functions ahve been pulled
out into r_graph.c (Time and Z graph), cl_ngraph.c (Net graph), and
{gl,sw}_graph.c (R_LineGraph). gl_ngraph.c is gone. Unfortunatly, something
is rather wrong with NetGraph in gl (probably R_LineGraph).
2001-05-22 06:00:38 +00:00
Bill Currie
0a4b53c817 gl_rsurf is now client clean 2001-05-21 23:09:46 +00:00
Bill Currie
da8715f27d sw_ralias.c and gl_rmain.c are now client clean. this involved a bit of a
revamp of skins. keep an eye out for broken skins (especially in nq)
2001-05-21 22:25:35 +00:00
Bill Currie
a79ab3faf8 abandon the oss write only attempts. 2001-05-21 17:40:12 +00:00
Ragnvald Maartmann-Moe IV
bee8473715 Added merge notes. 2001-05-21 16:22:31 +00:00
Ragnvald Maartmann-Moe IV
a9c9a46c37 client.h gone from gl_rlight.c and sw_rlight.c.
cl_lightstyle -> r_lightstyle
2001-05-21 03:08:07 +00:00
Bill Currie
ece576ed4b reduce gl_rmain's dependency on cl*.h 2001-05-21 00:22:35 +00:00
Bill Currie
337430a113 sw_rmain.c is now client and chase clean. 2001-05-20 20:38:51 +00:00
Bill Currie
44943e78de better fix for the dlights problem (will prevent similar problems in the
future)
2001-05-20 06:23:46 +00:00
Bill Currie
d360b01827 move dlight stuff out of cl_* into r_main.c. nq dlights seem to be broken,
but that seems to have been from before this work
2001-05-20 05:42:52 +00:00
Bill Currie
daca64ed04 more cl*.h dependency cleanups realtime and cl.time are no longer reffed 2001-05-20 03:54:55 +00:00
Bill Currie
d1c2b0ec52 r_efrag.c no longer relies on cl*.h 2001-05-20 02:39:56 +00:00
Bill Currie
e0512e4af3 r_efrag.c is almost client.h free 2001-05-20 01:58:59 +00:00
Jeff Teunissen
5a7b7571f3 Misc. API header cleanups. 2001-05-19 23:24:20 +00:00
Bill Currie
ec5daaa764 finally merge render.h. nq will NOT currently compile. I'll fix that when I
get back onto my computer at home
2001-05-19 00:23:21 +00:00
Adam Olsen
9cc30959e4 Sound now uses runtime plugins. Much thanks to Deek for doing all the
thinking :)
set fs_pluginpath to point to the right dir, and set snd_plugin to pick a sound
plugin.

Current issues:
- alsa 0.5 won't build properly, dunno why
- segfault on exit.  I think I know the cause of this, and how to fix it
- alsa 0.9, gus, sgi, sun, and win32 havn't been tested
2001-05-19 00:05:35 +00:00
Bill Currie
d16dc87dfa fix oss' device openning mode. defaults to write only, but read/write can be
selected by setting snd_oss_rw (need better name?) to non-zero
2001-05-16 18:59:31 +00:00
Bill Currie
72cc67e863 kill r_fullbright and r_draworder
`merge' skin handling
2001-05-16 06:01:34 +00:00