Commit graph

503 commits

Author SHA1 Message Date
Bill Currie
cd6217bd21 bah, __builtin_expect is new in gcc 3 2002-04-25 04:51:04 +00:00
Bill Currie
da994c16e5 rewrite R_SplitEntityOnNode to be itterative rather than recursive (using
a static `stack') to avoid the function call overhead. this cuts about 40%
of the execution time from this function.

No matter what I tried, best results were obtained using __builtin_expect,
so make sure non-gcc compilers do the right thing when they encounter it.
2002-04-25 04:32:55 +00:00
Brian Koropoff
bf323c3f0a Cleaned up Cmd_Args. It is no longer uselessly built up in
Cmd_TokenizeString since I realized the code was just pulling it apart and
putting it back together.  Added Cmd_Argsu to access the unprocessed
command.  Added support for else following if in such a way that
if/else if/else structures work.  Added support for unary operators in
EXP and added the ! (not) operator.  The ifnot command will be kept
for variety.
2002-04-24 22:33:04 +00:00
Brian Koropoff
7f295d61ee Added the getserverinfo command to return the value of a server info key
to GIB.  Fixed a bug in dstring_replace that was causing too much data to
be copied when the incoming string was larger than what was being replaced.
Very minor reorganization in cmd.c (1 function moved around I think).
cmd.c should probably get broken up into separate files soon.
2002-04-23 07:47:24 +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
ef81af9245 the "two birds with one stone" commit
1) when /not/ building static plugins, the plugin info name is, once again,
   PluginInfo, but is still type_name_PluginInfo for static plugins. This
   allows plugins to be symlinked (highly desirable for the debian packages,
   and likely others). This also requires plugins to /not/ be loaded with
   RTLD_GLOBAL.
2) because of 1, snd_alsa_0_9 has to explicitly load libasound itself. This
   just happens to fix my segfault on shutdown in RedHat 6.2.
2002-04-19 20:08:54 +00:00
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
51805ebd92 nothing much, just give wildcode a 30% speed boost. Basicly, stop binding
a texture for every single brush poly: due to texsort, they will come in
batches.
2002-03-16 09:25:06 +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
Bill Currie
26d7463be7 the majority of raptor's sgi build patch. I'll look at the last two bits
(server.c and vid_sdl.c) later.
2002-03-03 06:03:51 +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
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
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
Bill Currie
b4000200e3 move the getopt files from qfcc/source to libs/util, link qw-master against
libQFutil and enable the option parsting in qw-master for win32.
2002-02-12 17:44:41 +00:00
Bill Currie
d47533ad2e hopefully fix strcasecmp and strnlen for those systems that don't hide them 2002-02-06 19:06:05 +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
6767d6bfa0 win32 compile fixes 2002-01-19 20:45:45 +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
96c7159f66 keep track of the times of the last event (for those events that report time)
and use that instead of CurrentTime in the X selection code (as recommended
by the ICCCM)
2002-01-08 20:07:19 +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
42456845f0 high precision software mdl rendering 2002-01-05 03:21:02 +00:00
Seth Galbraith
6ec47e6be6 slaying hardcoded mdl vertex and triangle limit 2002-01-04 07:40:00 +00:00
Ragnvald Maartmann-Moe IV
43ca999fd7 Minor bugfix. 2002-01-04 04:05:46 +00:00
Ragnvald Maartmann-Moe IV
b13efc3a83 Particle updates. Some cleanups, small speedups, and reimplement id's effects. r_particle_styles 0 to see id's effects. 2002-01-04 03:32:59 +00:00
Bill Currie
3c6f64b26b _snprintf and _vsnprintf are not guaranteed to write the trailing '\0' 2002-01-03 23:24:47 +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
Bill Currie
9bc80e4a31 make dist and rpms work again 2002-01-02 16:21:02 +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