Commit graph

1014 commits

Author SHA1 Message Date
Chris Ison
0d755a0dd6 dirent.c and dirent.h brought in from cygwin for win32 builds 2004-01-12 02:23:36 +00:00
Bill Currie
03a24be4de partial work on wad file access cleanup in preparation of making a wad
utility
2004-01-09 23:34:32 +00:00
Bill Currie
808baf2198 doxygen didn't like that construct 2004-01-09 03:32:00 +00:00
Bill Currie
c5c5c33e7d I had forgotten the free string refs list /had/ to be in the progs vm 2004-01-08 04:03:47 +00:00
Bill Currie
ccfa9081b0 fix shm properly :) 2004-01-08 03:46:11 +00:00
Bill Currie
deb8137db7 more sound static cleanup 2004-01-08 01:48:02 +00:00
Bill Currie
16f0a54a84 fix some inconsistencies pointed out by doxygen 2004-01-07 20:06:15 +00:00
Bill Currie
b3f76e1e48 add some string builtins (only the basics for now, but enough to deal with
temporary strings) and fix the game load/save menus.
2004-01-07 07:36:17 +00:00
Jeff Teunissen
eb6b179add plist functions that add objects return qboolean, not int. Also doc fixes. 2004-01-07 07:01:31 +00:00
Bill Currie
9c92a916ff change the dict and array add functions to return true/false and add some
more docs
2004-01-07 06:19:11 +00:00
Bill Currie
e455b760ca use a cycled pool of "return strings". I'd love to come up with something
better, but this will do (similar to what qwe does, but qf style:)
2004-01-07 05:22:57 +00:00
Jeff Teunissen
d1b4c5df72 Change PL_D_AddObject() so that it replaces values instead of stacking them.
Add PL_D_AllKeys(), which returns a list of all keys in a dictionary.
Rename PL_FreeItem() to PL_Free() -- what was I smoking?
Document some of the property list system for doxygen.
2004-01-06 11:09:40 +00:00
Bill Currie
133879f8fa provide builtin mappings for id (none, really), qf and ktpro/qwe (qw only),
add qwe builtin extensions to qw-server. provide sv_progs_ext to control
the builtin mapping. valid values are "id", "qf" (our old static builtins),
"qwe"/"ktpro" (either works. for ktpro mod support) and "none" (no
mapping). any other value is equivalent to "none".
2004-01-06 07:00:39 +00:00
Bill Currie
d7592781d7 add builtin mapping support (not used yet) and fix an uninitialized
variable
2004-01-06 06:08:59 +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
595280decb do the builtin function lookup at load time rather than runtime and store
the function address in the progs function descriptor. this will speed up
calls to builtin functions, especially when ranges get introduced.
2004-01-05 08:08:46 +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
dfe7f263c7 new internal printf engine for progs, mostly thanks to Deek.
also a few cleanup bits
2004-01-04 07:42:43 +00:00
Bill Currie
a533761770 Nuke PR_GarbageCollect as it's both redundant with the new temp strings
and wrong anyway (could free strings it wasn't supposed to).

Don't free the string pointed to by a strref since it's already been
implicity freed (whole memory space nuked). Fixes new map crash.
2004-01-04 02:03:30 +00:00
Bill Currie
bd561fafc3 o all progs strings are now stored in progs memory
o  temporary strings automaticly get freed when the function they're
    created in (results of str + str and most strings returned from
	builtins). a way to keep temp strings will be provided later
 o	fix up qwaq to test the temp strings
2004-01-03 08:43:57 +00:00
Ragnvald Maartmann-Moe IV
1be98dcf08 gl_external_textures -> gl_textures_external, plus whitespace & codingstyle. 2003-12-23 20:05:52 +00:00
Bill Currie
4b6b5135ac more texture tweeks from Griever: gl_external_textures 2003-12-23 08:38:33 +00:00
Bill Currie
5eff81b005 dstrings now have individual memory management functions 2003-12-22 23:35:22 +00:00
Ragnvald Maartmann-Moe IV
5f76017d2a Update ALSA sound target to support 1.0.
Breaks 0.9 support, but 1.0 is in 2.6.0. So either update, or revert to older
snd_alsa.c & alsa_funcs_list.h.
2003-12-22 01:07:49 +00:00
Bill Currie
9e3f33f318 don't need to see these :) 2003-12-19 04:25:07 +00:00
Brian Koropoff
f8baa5be27 Added a finalize method to all Objects and modified the garbage
collector to deal with objects that might gain references during
finalization.
2003-12-09 06:57:35 +00:00
Brian Koropoff
991fc06360 Garbage collection:
Moved from reference counting over to a mark and sweep method.  Objects
are now required to implement an allRefs method which returns a pointer
to a list of all other referenced objects.  How the list is maintained
is up to each object.  The retain/release mechanism still works; objects
with any references will not be garbage collected, even if the collector
thinks they should be.
2003-12-09 02:01:05 +00:00
Brian Koropoff
e498b196fe Fix a bug with ArrayList_Deinit_f (tried too hard to be clever), and add
an incremental, reference counting garbage collector for QFobjects.  A
different kind of collector will eventually be needed to run once in a
while to sweep up cyclic structures.
2003-12-07 22:45:32 +00:00
Brian Koropoff
7598ab35fb Move the QF object system into it's own library, fix up the standard
classes.
2003-12-07 04:50:46 +00:00
Bill Currie
09143b7fb1 more whitespace 2003-12-06 22:49:18 +00:00
Bill Currie
4d3ca27227 white space 2003-12-05 22:33:11 +00:00
Brian Koropoff
a0b8566337 Add the instanceOf() macro and supporting function, and try to fix
gcc 2.95 support again.
2003-11-29 23:09:50 +00:00
Brian Koropoff
dfe1dbe4bf This should fix object.h on gcc 2.95. 2003-11-29 22:51:16 +00:00
Brian Koropoff
55181621bd First commit of an experimental low-level object system. At some point
GIB will be reworked to use it, and hopefully Rua will also so that the
two languages can share objects, events, etc.

Warning: This uses quite a few hacks and tortured macros, it might cause
breakage.
2003-11-29 04:40:25 +00:00
Brian Koropoff
37a64e59ab Change some error names, mark a few things static that should be. Instead
of using a colon to specify a parent class in a GIB class definition,
"extends" is now used.  If no parent class is specified, it now defaults to
Object.
2003-11-29 02:01:31 +00:00
Bill Currie
cd8035319d PR_GetString should have been returning const char *. now does 2003-11-21 21:34:53 +00:00
Bill Currie
5f5662a063 PF_VarString return a plain char * and make it easier to add "at load" init
functions
2003-11-20 07:46:56 +00:00
Bill Currie
b3c6e763cd allow cbufs to have a callback for unknown commands. if the callback
returns non-zero the unknown command is assumed to have been handled and no
error is reported
2003-11-20 07:02:14 +00:00
Bill Currie
481c9c4e8d add Sys_TimeOfDay from QWE (HighlandeR) 2003-11-20 07:00:07 +00:00
Ragnvald Maartmann-Moe IV
5686ff51e5 Make R_DarkFieldParticles & R_EntityParticles work in all renderers. 2003-10-22 06:00:36 +00:00
Brian Koropoff
f4c174184d Add support for named arguments in GIB functions and methods, fix a few
bugs, allow subclasses of classes written in GIB to access the same set
of instance variables.
2003-10-19 00:51:47 +00:00
Brian Koropoff
ad61e0684c Make GIB_Reply an actual function, store object handles as a string, add
the ObjectHash class.
2003-09-21 00:30:47 +00:00
Bill Currie
84ea81a770 fix E_POINTER and E_FUNCTION 2003-09-12 23:12:21 +00:00
Brian Koropoff
362d58fd95 Made reference counting of objects more sane. If a message is sent by an
object, the sending object is included in the message.  This is available
in GIB-scripted methods as the local variable "sender", which will be 0
if the sender was not an object.
2003-09-11 08:51:44 +00:00
Brian Koropoff
687a0845b6 Introducing the GIB Object System (TM). This breaks scriptable HUD for now
and probably has enough bugs to leave the Orkin man scratching his head,
but it works and allows you to do neat things like write classes in GIB
(amazing!) and subclass builtin classes (which are Object and Thread at the
moment, Hash should be coming soon as a replacement for stem and leaf
variables).
2003-09-11 06:03:13 +00:00
Bill Currie
1ed772a933 convert \ to / while extracting and accecpt file names on the command line
to control extraction.
2003-09-10 20:48:59 +00:00
Chris Ison
392902f5af added SND_NoResampleStereo so that streams that don't need resampling aren't forced to, also added midi support via libWildMidi, MIDI FILES RULE 2003-09-10 05:20:51 +00:00
Bill Currie
4ce44cf9eb PNG write support from DrSpliff 2003-09-09 16:18:13 +00:00
Bill Currie
2ea7ca1efd windows has a LoadImage #define, so kill it :) 2003-09-08 15:49:21 +00:00
Bill Currie
6b036d14ed in_mouse_accel patch from qize@gmx.net 2003-09-04 22:29:40 +00:00
Bill Currie
2b5a3753ca nuke QF/texture.h moving it's contents into QF/image.h (yay, finally, a
real home for tex_t:)
2003-09-04 18:59:39 +00:00
Bill Currie
39ed540979 LoadImage is now used for all external textures giving almost transparent
.png and .tga support.
2003-09-04 18:46:59 +00:00
Bill Currie
753dc02deb use dtrings to do the filename manipulation 2003-09-04 18:09:02 +00:00
Bill Currie
9cd2d366ed dstring.h:
document the functions (for doxygen)
dstring.c:
	fix a bunch of potential buffer overflows
2003-09-04 17:17:38 +00:00
Bill Currie
d186f242b7 DrSpliff's LoadImage code (thanks:) 2003-09-04 16:32:39 +00:00
Bill Currie
3305c0f51f PNG reading support, much thanks to DrSpliff 2003-09-04 05:24:05 +00:00
Bill Currie
231a1bfb56 bring in many of LordHavoc's changes to qbsp: HalfLife WorldCraft texture
alighnment, partial "point of plane" autocorrection (currently disabled: I
want to make it optional), large map support (not sure where that's
hiding), hipnotic entity rotation
2003-09-03 22:00:08 +00:00
Ragnvald Maartmann-Moe IV
dc8e9422a2 Qize's patches. Add some more backwards-compatibility aliases to ln.gib,
remove a dead cvar, and don't display a message about what to do to connect
when use +connect already...
2003-09-01 01:52:20 +00:00
Bill Currie
ef4ca0c798 some doxygen tweaks 2003-08-31 05:24:24 +00:00
Bill Currie
8868a9d0bd get rid of some unneeded defines and ifdefs 2003-08-28 23:26:59 +00:00
Ragnvald Maartmann-Moe IV
c2053fbfb1 Prettier particles! Renderer is now informed of sv_gravity changes in qw. Not
supportable without protocol changes in nq.
2003-08-27 22:20:03 +00:00
Bill Currie
415fae8d6b make the two normals arrays consistent 2003-08-26 07:00:13 +00:00
Bill Currie
b50d283b28 make sel_get_uid and class_get_instance_method work 2003-08-23 22:16:42 +00:00
Bill Currie
385a90e8fb correct pr_symtab_t to include the pointer to the array of selectors used
in the module. Unfortunatly, this requires a version bump on both qfo and
progs files due to the changes structure layout.
2003-08-23 06:15:19 +00:00
Bill Currie
0a0f8d0cfa make a LoadBSPMem function so bsp files can be read from already loaded
images
2003-08-11 22:40:46 +00:00
Bill Currie
7ead5a91f8 don't let gcc automaticly inline functions but make gcc inline bigger
functions when told to. also make gcc warn if it can't inline a function.

Explicitly inline several functions (including moving VectorNormalize to
mathlib.h so it /can/ be) resulting in a 5.5% speedup for spam2 (88 to 92
fps)
2003-08-11 06:05:07 +00:00
Bill Currie
6a94607d9d rename VectorMA to VectorMultAdd, add VectorMultSub and use it in a few
places. Not certain how much speed difference it makes :/
2003-08-08 15:25:53 +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
Bill Currie
9210829573 PLUGIN_INFO decl cleanup 2003-08-01 19:53:46 +00:00
Bill Currie
0806fc33dd debugging improvements. opcodes now sport an optional format specifier for
printing their args (default is "%Ga, %Gb, %gc") and PR_ValueString will
try to print what a pointer points to
2003-07-30 22:24:16 +00:00
Ragnvald Maartmann-Moe IV
5838cfb565 Missed one. And fixed duplicate declaration of scr_viewsize Deek noticed. 2003-07-28 00:32:41 +00:00
Ragnvald Maartmann-Moe IV
0a7b56f003 show_fps -> hud_fps, show_ping -> hud_ping, show_pl -> hud_pl,
show_time -> hud_time, show_scoresuid -> hud_scoreboard_uid
2003-07-27 23:20:11 +00:00
Jeff Teunissen
c9858f4f65 Preliminary "unsigned" support for qfcc and the gamecode engine. Should still
be compatible.
2003-07-26 21:07:51 +00:00
Bill Currie
6063fb75d9 make the console run at full speed no matter what demo_speed is at. what a
lot of work for such a simple concept :P
2003-07-25 22:21:47 +00:00
Brian Koropoff
9b63402f12 Added llist.[ch], a set of general-purpose linked list routines. Added
cl_chat.[ch] to qw to hold advanced chat features, the first of which is
the ability to ignore chat messages from annoying players.  Some polishing
in this area still remains, but the current implementation seems to work.
2003-07-18 06:27:26 +00:00
Bill Currie
9367a62e0a turned out not to be the right solution 2003-07-17 19:16:20 +00:00
Bill Currie
043ec906c4 qnx patch from DrSpliff 2003-07-17 15:17:41 +00:00
Brian Koropoff
695fe40e29 Same changes, this time to HEAD. 2003-07-15 21:46:12 +00:00
Brian Koropoff
b7d076feab Add support for run-time regex options (REG_NOTBOL and REG_NOTEOL),
and more text transformation functions.
2003-07-15 21:40:37 +00:00
Bill Currie
cb6bf2e2ae minor house-keeping 2003-07-15 16:34:43 +00:00
Bill Currie
4f66e1e9da fix a bunch of the previous FIXMEs. needs a bit more work for win32
compiling
2003-07-08 22:39:45 +00:00
Bill Currie
f5cf955f21 win32 finally builds again 2003-06-05 18:25:41 +00:00
Bill Currie
d42e011760 make dist fix 2003-06-04 18:26:19 +00:00
Bill Currie
00abd17dd4 dstring.[ch]:
add dstring_copysubstr and make all the substr functions use strnlen
	for the incoming string. also fix the append string functions to append
	the present string correctly.
cbuf.c:
	use dstring_copystr instead of dstring_clearstr/dstring_appendstr
idparse.c:
	use dstring_copysubstr instead of dstring_clearstr/dstring_insert
2003-05-26 19:14:18 +00:00
Brian Koropoff
3aecdcf42c Added a temporary hack to make ~/.quakeforgerc work again. 2003-05-25 05:40:25 +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
6a8469df14 start working on VA support for borked GL libs 2003-05-21 21:53:21 +00:00
Bill Currie
dedb2fa6bf get [super ...] working correctly 2003-05-15 05:58:31 +00:00
Brian Koropoff
e160ead563 Added the scriptable HUD interface between the engine, Rua, and GIB. 2003-05-14 21:17:32 +00:00
Brian Koropoff
bf675e793e Fixed a few GIB bugs, added the chomp builtin. 2003-05-14 21:13:41 +00:00
Bill Currie
b5a960c57b fix nq's gamedir handling for the -hipnotic etc shortcuts 2003-05-09 21:10:59 +00:00
Ragnvald Maartmann-Moe IV
09fa88e637 Don't export R_TestErrors. 2003-05-09 01:30:22 +00:00
Bill Currie
be0b3867c7 add dstring_copy and dstring_copystr to make dstring init easier 2003-05-08 23:05:39 +00:00
Bill Currie
5e56e01790 qw now has centered scoreboard :) 2003-05-07 17:23:18 +00:00
Bill Currie
f12f4a8898 add view_insert to provide greater control over view order 2003-05-06 02:41:37 +00:00
Bill Currie
56bfc6dc45 fix the input line location bug and change enabled to visible due to
enabled meaning something else in UIs
2003-05-06 02:25:46 +00:00
Bill Currie
508fb4fb5c new view stuff mostly working. just a few visual bugs to iron out 2003-05-06 02:19:13 +00:00
Bill Currie
1bdcd879be initial work on dynamic view support for the console. I'm aware that
QF/view.h vs view.h may cause some confusion, but I'm hoping to eleminate
view.h.

Also put the sample hud.txt into docs so it doesn't get lost.
2003-05-05 18:50:14 +00:00
Bill Currie
09f3f1ea26 mindHog's plugin global symbol handling patch so his python plugin can work
(reloads the plugin with RTLD_GLOBAL if the plugin requests it).
2003-04-30 02:14:44 +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
4a73d5dc45 this seems to fix the "end of file" issues on streams 2003-04-26 04:30:07 +00:00
Bill Currie
f7d806e8d5 can now handle > vector sized parameters 2003-04-22 20:11:16 +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
714bd341fc 'copy' streams on openning. fixes the shared stream issues, though other
problems might arrise (eg, running out of file handles or memory)
2003-04-20 07:19:51 +00:00
Bill Currie
52f41f8095 make streams work in chunks of 256 samples (won't work so well for non power
of 2 resample rates :/)
2003-04-20 03:42:19 +00:00
Bill Currie
49571b257d crystal clear playback on resampled streams :) (still borked when shared,
though :/)
2003-04-17 17:43:21 +00:00
Bill Currie
64d5e4e053 mindHog's (mindhog@mindhog.net) plugin command patch 2003-04-17 15:18:16 +00:00
Bill Currie
eb099ae0d3 make qf gcc 3.3 clean 2003-04-17 00:01:48 +00:00
Bill Currie
5505aba316 minor cleanups 2003-04-15 04:03:02 +00:00
Bill Currie
da44c783fb get the new sound system mostly working. just getting a bogus read count
in the stream reader at the moment, otherwise it's working wonderfully :)
2003-04-15 02:34:17 +00:00
Bill Currie
9fda72c119 streamed sounds /almost/ work. sound like crap but no crashes 2003-04-14 15:47:08 +00:00
Bill Currie
d5c2c092b1 pre-emptive make dist fixes :) 2003-04-14 06:17:28 +00:00
Bill Currie
aab4dcf931 getting there with streams. just need to get the painters working, I think.
(streaming currently disabled for anything < 30s :)
2003-04-14 06:11:53 +00:00
Brian Koropoff
11e2f0d16a Added a generic interface for using handles in GIB and made GIB threads
use it.
2003-04-14 01:17:55 +00:00
Brian Koropoff
e707e9bb89 Moved gib_*.h into include/ and moved the necessary declarations and struct
definitions to QF/gib.h to interface with libQFgib.
2003-04-13 22:07:58 +00:00
Brian Koropoff
3b703db4d4 Added the beginnings of an interface between Ruamoko and GIB. Although the
API is by no means finalized, it's now possible to write GIB builtins in
Ruamoko that can take arguments and return values to GIB.
2003-04-13 20:43:52 +00:00
Bill Currie
1b2d7b79a6 streams getting closer, not working yet, though 2003-04-13 06:46:24 +00:00
Brian Koropoff
63c3038ad8 Added the useful dstring_freeze function to convert a dstring to a
finalized, plain C string.
2003-04-13 05:48:28 +00:00
Bill Currie
e3f8c833ad getting closer. wav's successfully load, but playback is always looped (?).
oggs hang
2003-04-11 21:14:38 +00:00
Bill Currie
948c97a6a4 cached wav files almost work (seems cached ogg are borked now :/) 2003-04-11 18:59:14 +00:00
Brian Koropoff
f287e78030 Optimized the way resetting buffer states occurs and fixed thread::kill so
threads actually die as they are supposed to.
2003-04-11 05:58:58 +00:00
Bill Currie
8012a408b8 90% there for cache wav support. will likely segfault :) 2003-04-11 04:39:51 +00:00
Brian Koropoff
af114732ef Oops, forgot these. 2003-04-11 04:37:41 +00:00
Brian Koropoff
d8c0f50c11 The ultimate GIB bugfix commit, including reworked semantic processing,
a fix for arguments passed to a GIB function run via rcon, and various
other fixes.
2003-04-11 02:57:11 +00:00
Bill Currie
ccb56eea39 half way though the sfx loader re-write. nothing works :) 2003-04-11 01:17:48 +00:00
Bill Currie
e5a23c95dc make riff.c portable 2003-04-10 22:52:58 +00:00
Bill Currie
722c55391e read fmt chunks properly 2003-04-10 22:03:55 +00:00
Bill Currie
5e98c762ed riff namespace cleanup (sorta, it's ugly:/) 2003-04-10 21:45:12 +00:00
Bill Currie
0045ab7c09 implement Qungetc and nuke Qgetpos and Qsetpos 2003-04-10 21:11:40 +00:00
Bill Currie
022cac6082 oops, forgot this 2003-04-10 16:53:54 +00:00
Bill Currie
e937fecdc1 move the riff reading code into libQFutil 2003-04-10 16:52:39 +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
Bill Currie
dd297bc12a start work on support for stereo samples 2003-04-08 22:23:16 +00:00
Bill Currie
d3b6fcbd61 revert the inappropriately complicated event code for the simpler version.
even that's not likely to be final
2003-04-08 19:20:48 +00:00
Bill Currie
255a7522bd merge IN_SendKeyEvents and IN_Commands into IN_ProcessEvents 2003-04-08 18:45:12 +00:00
Bill Currie
35eb866603 kill VID_HandlePause and IN_HandlePause as they never did anything and
IN_ModeChanged as it's a dead prototype
2003-04-08 17:55:32 +00:00
Bill Currie
01bff9c79e WildCode's alias model VA prepatory patch 2003-04-08 04:13:49 +00:00
Bill Currie
0b0dfcc38e nuke the string api (never really liked it) 2003-04-08 02:35:09 +00:00
Bill Currie
13fd0b8533 nuke the string hash api as it's been obsoleted 2003-04-07 22:34:39 +00:00
Bill Currie
7001f1d851 plist api (hope it works:) 2003-04-07 20:02:06 +00:00
Bill Currie
d5003f363d make plist arrays unlimited in size 2003-04-07 19:29:52 +00:00
Bill Currie
33c9ce0f7b add hash table api 2003-04-07 16:38:34 +00:00
Ragnvald Maartmann-Moe IV
91bebf1bfa Don't need LA for greyscale textures, switch to luminance-only. 2003-03-21 22:08:46 +00:00
Ragnvald Maartmann-Moe IV
3bfdf0aea3 Test for gl errors every frame. 2003-03-21 21:28:09 +00:00
Bill Currie
00c61fe07c add a luminance/alpha tex def 2003-03-20 23:30:24 +00:00
Ragnvald Maartmann-Moe IV
88c2735d9c Make sprite rendering use vertex arrays, as a test for detection of vertex array support (tests only for OpenGL 1.1 or better, at the moment, no driver blacklist yet). 2003-03-20 19:58:18 +00:00
Bill Currie
4ea47fc261 give up on ancient mingw 2003-03-19 07:03:51 +00:00
Bill Currie
3423ed59d5 expand the plist api to make plist creation easier 2003-03-18 19:15:31 +00:00
Bill Currie
2173151560 get packet logging working with mvds 2003-03-16 03:17:50 +00:00
Bill Currie
71a60717d9 make pr_source_path a ; separated list of dirs and make it controllable in
qfprogs
2003-03-12 22:31:44 +00:00
Bill Currie
ff2a40a7c6 WildCode's dx cleanups 2003-03-11 06:31:30 +00:00
Bill Currie
a8c989969d hopefully better input grabbing state tracking 2003-03-07 22:30:15 +00:00
Bill Currie
c731afa957 hopefully fix the input grabbing (and evem more hopefully, without driving
Despair to ... um... ;)
2003-03-07 03:55:51 +00:00
Brian Koropoff
2be8a851d5 Oops, make 'return' GIB builtin actually end the current function. 2003-03-01 02:44:58 +00:00
Bill Currie
a9a169e820 make the more relevant parts of qfs available to progs. bi_file.c will
eventually be moving into bi_qfs.c
2003-02-28 05:35:27 +00:00
Brian Koropoff
c9fbb334f1 Cleaned up the GIB parser and GIB_Execute() a lot. Made aliases work in
GIB.  Added some breakpoint GIB builtins for debugging script/intepreter
interactions.  Made carne work properly again (local variables don't
disappear in interactive mode)
2003-02-25 06:52:27 +00:00
Ragnvald Maartmann-Moe IV
0fd0bd5d96 Replace removed bigendian declaration. 2003-02-23 22:53:03 +00:00
Brian Koropoff
6141bc35d0 Removed the 'random' GIB builtin and replaced it with the rand() math
function in the math evaluator.  Added the trunc() math function as well.
2003-02-23 22:14:07 +00:00
Bill Currie
c026e61d22 make LittleLong and co defines rather than function pointers 2003-02-22 23:23:16 +00:00
Bill Currie
6805d479f3 improve Hash_Free's docs 2003-02-21 02:37:44 +00:00
Bill Currie
d93fceea38 fix a snafu in SVC_DirectConnect related to info strings, make
Info_ParseString take (and pass on to Info_SetValueForStarKey) a flags arg
and simplify the flags handing in Info_SetValueForStarKey.
2003-02-19 17:39:21 +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
Brian Koropoff
af520a373a More cleanups and bug fixes. Added stem-and-leaf variables back in and
added the global::delete builtin.
2003-02-16 02:44:24 +00:00
Bill Currie
851d203916 work towards a more secure qfs 2003-02-14 22:36:10 +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
fd7636137d implement a proper (and optionally secure) QFile interace for ruamoko. 2003-02-14 18:17:17 +00:00
Brian Koropoff
3c522a83bc Various cleanups and bugfixes. Added proper line number reporting to
errors.  A few new builtin functions, such as slice::find and thread::list.
2003-02-14 08:06:01 +00:00
Ragnvald Maartmann-Moe IV
2cb4c7836d Remove dead cvar. 2003-02-14 02:21:31 +00:00
Ragnvald Maartmann-Moe IV
911933c8fd *punts cvs* 2003-02-13 19:04:08 +00:00
Bill Currie
53d3252792 don't adjust the system gamma unless the window has focus. also quench an
internal warning (the event system can't handle shm events (doesn't seem to
need to anyway)).
2003-02-13 18:24:30 +00:00
Bill Currie
1051b8c748 missed a net.h -> netmain.h 2003-02-12 20:08:55 +00:00
Bill Currie
21d8b4f8dc link in hw, move the qw and nq networking code into libs/net and make
hw-master use libnetchan. there are evil include hacks that will need to be
taken care of in net*.[ch]
2003-02-11 22:48:57 +00:00
Bill Currie
4bd1718475 re-arrange viewsize handling to fix the hud bug in glx 2003-02-11 21:24:27 +00:00
Bill Currie
2dc7cbaef0 remove a redundant prototype 2003-02-10 21:04:50 +00:00
Bill Currie
3ab4eb6545 Arkadi's mach64 patch 2003-02-06 21:47:33 +00:00
Bill Currie
79322d64ce header stuff 2003-02-02 03:43:49 +00:00
Brian Koropoff
5870c2cbce Nuked some code obsoleted by reference counting. 2003-01-31 21:47:16 +00:00
Bill Currie
05fb5f9fb2 partial cleanup. more to come later :) 2003-01-31 20:51:04 +00:00
Bill Currie
c103d77157 make SND_ClearBuffer get called directly by Block/UnblockSound and remove
S_ClearBuffer from the api
2003-01-31 19:55:21 +00:00
Bill Currie
881e7918c2 cut some overhead on sound rendering 2003-01-31 19:14:12 +00:00
Brian Koropoff
47d35f3e2d GIB: Added ifnot, fixed several bugs, updated zoom.gib yet again. 2003-01-31 03:43:56 +00:00
Brian Koropoff
580ca17546 GIB: Added proper reference counting on parse trees, got threads working
again, added a few new builtins and renamed some others, made misc. fixes
and enhancements.
2003-01-30 23:26:43 +00:00
Bill Currie
1f16e95564 add gib_tree.h 2003-01-30 04:43:40 +00:00
Brian Koropoff
1f5cabcba9 A few GIB bugfixes, cleanups, and enhancements. Still more to come. 2003-01-29 04:34:23 +00:00
Brian Koropoff
59fbd48a81 Overhauled GIB to parse scripts in advance, among other design and language
changes.  There still remains some bugs to be squashed, a feature or two to
add, and some polishing to be done.  However, it seems to be in a workable
state.
2003-01-28 21:16:21 +00:00
Bill Currie
fd5695eb03 hash.[ch]:
add Hash_Free to ease freeing of hash table entries.
quakefs.c:
	beginnings of proper variable subtitution in qfs. not yet working but
	it compiles.
2003-01-27 18:16:15 +00:00
Bill Currie
d63cde4103 import the GL_ARB_texture_cube_map defines 2003-01-15 18:26:58 +00:00
Bill Currie
0ea15c3f82 sw and gl fisheye patches from Arkadi Shishlov (arkadi@it.lv). I don't
think /I/ can play that way (dizzy:)
2003-01-15 16:53:34 +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
3b9e7db882 fix the skins dowload location issue (not really to my satisfaction, but it
will do for now)
2003-01-10 23:07:04 +00:00
Bill Currie
2e0ed3377c basic (very!) implementation of the new filesystem directory struture code.
All the details of game directories will be fully configurable (search
paths and gamecode file name currently supported). Downloading of skins to
qw/skins only currently broken (will download to $gamedir/skins for now).
2003-01-10 22:47:18 +00:00
Bill Currie
e32dc4cdb7 missed the new headers 2003-01-08 16:07:45 +00:00
Bill Currie
de610ee47b missed this file 2003-01-06 20:01:13 +00:00
Bill Currie
71196fedf6 make gcc more anal about prototypes, string constants and function
visibility (ie, global functions must have a prototype)
2003-01-06 18:28:13 +00:00
Brian Koropoff
c522970a88 Added a GIB event system for registering GIB callback functions to be
started when a named event occurs.  Added a few test events to the qw
client and server.  Cleaned up the range GIB builtin a bit.
2003-01-03 04:30:38 +00:00
Brian Koropoff
86d73f1577 Include protection. 2003-01-03 04:12:27 +00:00
Bill Currie
637de7b687 chage PL_ObjectForKey to take a plitem directly and typecheck the item 2002-12-18 16:09:47 +00:00
Bill Currie
a84b6bba5d make stuff static that can be and nuke some useless stuff 2002-12-16 23:26:14 +00:00
Brian Koropoff
32e5e6ef0b Numerous GIB bug fixes and optimizations. Fixed/updated some GIB scripts
as well.
2002-12-13 23:36:05 +00:00
Bill Currie
9fd59ac09a make sure r_screen.h gets distributed 2002-12-13 16:53:22 +00:00
Bill Currie
3b7f7bd2ad get working with both older (0.3) and newer (2.2) mingw 2002-12-12 20:11:01 +00:00
Bill Currie
37c5bb6ec6 merge the bulk of the three screen files into r_screen.c so all common code
is shared.
2002-12-11 17:34:48 +00:00
Brian Koropoff
74ee0cfd0e Changed the behavior of field::get with a null field separator to match
that of for loops.  Added support for var++, var--, var += foo, var -= foo,
var *= foo, and var /= foo.
2002-12-10 00:04:15 +00:00
Brian Koropoff
91266619f3 Added the sqrt and abs math functions and the continue GIB builtin. I
changed where a loop program gets copied back into its buffer so that the
continue builtin would work.
2002-12-08 20:55:40 +00:00
Bill Currie
92ea1de504 apply Kaare Slettnes' key name extention patch (Closes: #62) 2002-12-02 16:26:18 +00:00
Bill Currie
ee30860cef fix a bunch of ;; typos 2002-11-20 21:44:04 +00:00
Brian Koropoff
854f6d9054 Created gib_regex.[ch] to manage regular expressions in GIB. Regexs are
now cached and only recompiled when compile flags change.  Changed regex
builtins to take an options string argument after the regular expression.
2002-11-19 06:24:29 +00:00
Brian Koropoff
860306e324 Oops, forgot these. 2002-11-19 04:24:09 +00:00
Brian Koropoff
0e0d8bd542 Added support for enclosing embedded commands in $() and cleaned up the
parser a bit to accomodate this.  Backslashes in double quotes are now only
removed if they escape a character that can't be written normally, or
another backslash.  Removed start position support from string::findsub
since variable slices can be used instead.  Added support for regular
expressions in the form of regex::match, regex::replace, and
regex::extract.  Checked in regex.c from GNU regex 0.12 for platforms that
do not have regex functions in their standard library. Two minor changes
were made to this file to fix gcc warnings.  Prepared the path transform
function for a change to a filesystem rooted at fs_userpath instead of the
current gamedir, but these changes are commented out pending security
considerations.
2002-11-19 04:15:36 +00:00
Brian Koropoff
d4b1c74866 Added the string::findsub builtin. Added a reset function to the cbuf
interpreter struct so that custom cbuf data can be reset after an error.
This fixes a bug where GIB would think it was still waiting for a return
value after an error occurred in an embedded command.
2002-11-16 20:56:04 +00:00
Brian Koropoff
625e1e36d6 Added Sys_PathType, which reports whether a path is absolute, relative
below, or relative above (uses .. to ascend the filesystem). Changed
file functions in GIB to use this.  GIB can now be initialized in a
non-sandboxed mode, which at the moment means that GIB scripts run with
carne can access the entire filesystem.
2002-11-14 05:28:54 +00:00
Brian Koropoff
7b0c24a386 Added carne, the stand-alone GIB interpreter. Made a few changes to GIB
to accommodate it.  Added the strict flag to cbufs, which causes an error
to be generated when a command is not found instead of just warning the
user.  GIB buffers have the strict flag set by default.
2002-11-14 02:10:55 +00:00
Bill Currie
6ce0abe536 more alpha compile fixes. Closes: #60 because while it started out for
0.1.1 it developed into an alpha compile issue for 0.5.2
2002-11-13 20:20:50 +00:00
Bill Currie
836c469737 sys.[ch]:
handle SIGFPE and allow the registered signal handler to do recovery
	rather than bail
progs.h, pr_exec.c, pr_load.c:
	if pr_faultchecks is 1 (0 is default), handle division by 0 gracefully
	by loading the maximum representable number into the answer
	Closes: #58
the rest:
	kill the SIGFPE stuff
2002-11-13 19:26:44 +00:00
Brian Koropoff
cef0d957e2 Added useful error messages to the math parser, cleaned up implied
multiplication a bit, and added some whitespace to cbuf errors for
readability.
2002-11-13 03:03:37 +00:00
Bill Currie
77288fe90b make dist fix 2002-11-09 21:56:13 +00:00
Brian Koropoff
b40400d59c Moved GIB into libs/gib and made util no longer depend on it. Cleaned up
some cruft from a previous incarnation of GIB.
2002-11-09 07:13:52 +00:00
Bill Currie
1dfbf4ba7e win32 compile fixes 2002-11-08 23:13:52 +00:00
Bill Currie
3d44623b57 change Cmd_Exec_File's api so it can conditionally use normal or quake
file system accesses. fixes the map.cfg exec problem
2002-11-08 16:39:28 +00:00
Bill Currie
62bbd0228a prototype Com_CollapsePath 2002-11-08 03:12:22 +00:00
Bill Currie
eeb4e4f9a9 how that got past my compile tests is beyond me 2002-11-06 14:56:39 +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
667efab4e0 clean out the old win32 support. it's obsolete or dead or only semi-legal 2002-10-30 06:06:57 +00:00
Bill Currie
aa36b85ba6 add PR_StringValid and PR_EdictValid to check the validity of progs string
and entity values without crashing.
2002-10-29 05:07:10 +00:00
Brian Koropoff
01a7740f1b Added bind.get builtin that returns the command currently bound to a key.
Fixed gib_builtin.h to include another needed header.
2002-10-25 06:33:16 +00:00
Brian Koropoff
20d47cde2f Added the global.delete builtin to clean up old global variables. Updated
cb.gib to use it.
2002-10-23 03:56:57 +00:00
Bill Currie
80e85226b9 pr_xstatement now always reflects the currently executing statement making
debugging easier in the event of a segfault
2002-10-22 15:07:54 +00:00
Bill Currie
b345f510fa provide Hash_Buffer so buffers can be hashed 2002-10-20 03:30:22 +00:00
Bill Currie
4da662eb47 implement pr_obj_msg_sendv 2002-10-16 22:17:26 +00:00
Bill Currie
be4b8096d4 two new instructions: move and movep: basicly memmove. qfcc support coming
as soon as I get it working :)
2002-10-16 06:44:41 +00:00
Brian Koropoff
8c2afef44c Changed GIB_Arg* into macros. Cleaned up GIB file access a bit and added
file.move and file.delete builtins.  Added Qremove to quakeio.[ch]. Did
a little cleaning and commenting in gib_parse.c.  Added support for \t
and \r escape characters.
2002-10-16 04:59:34 +00:00
Bill Currie
68b41f9b44 make dstring_adjust `grow' in increments of 1024. this should speed up
multiple appends nicely.
also create davsprintf and dasprintf to /append/ the printed strings to the
dstring rather than overwriting it as is done with dvsprintf and dsprintf.
2002-10-15 19:52:46 +00:00
Bill Currie
1f0b6e84a5 change pr_obj_msgSend and pr_obj_msgSend_super so they either call builtin
methods directly or setup the progs struct for a normal function call to
call a progs method rather than recursively calling PR_ExecuteProgram. This
will reduce method call overhead (both cpu and stack usage), fix the loss
of tracing when calling a method and makes it possible to break out of the
progs engine simply if threaded progs are ever implemented.
2002-10-15 18:53:33 +00:00
Brian Koropoff
72e1ab0c57 Added the sleep console command that waits for a specified amount of time.
Note that this isn't a GIB-specific command but is very useful in GIB
threads.  Fixed the range GIB command to respect the ifs local variable.
2002-10-13 19:46:47 +00:00
Brian Koropoff
8b31103e6f Var substitution is now handled in the same pass as embedded return values.
This prevents var substitution from being performed on the return value
of a function.  The local variable ifs can now be set to specify a custom
field separator for use in for loops.  file.find will also insert ifs
between file names instead of a space if it is set.  file.find will also
no longer put . and .. in a list of file names.
2002-10-13 05:52:06 +00:00
Ragnvald Maartmann-Moe IV
ef47bf6e12 gl_skymultipass -> gl_sky_multipass. Much nicer tab completion. 2002-10-10 19:49:36 +00:00
Bill Currie
a13a67b163 fix make dist (bogus stamp-h.in) 2002-09-27 20:10:45 +00:00
Bill Currie
9d8d570269 using Qseek on a pak sub-file should work better. this should make oggs in
paks work.
2002-09-27 04:27:19 +00:00
Bill Currie
d25ee82838 provide a tighter accuracy (but slower) _VectorNormalize for the tools 2002-09-25 21:35:49 +00:00
Bill Currie
56843557f6 make _VectorCompare use EQUAL_EPSILON (VectorCompare is still the fast
macro) and use it instead of VectorCompare in the map tools. This (and, it
seems, RINT) fixes qfbsp on spc. Also, jump /all/ entities that get hit
by the filler in qfbsp
2002-09-20 17:02:53 +00:00
Bill Currie
0cd34d155f qfbsp now mostly works. only known issue is multiple texture wads don't
load properly and possibly a "reached occupant" issue (dunno if it's the
map or qfbsp)
2002-09-19 20:39:33 +00:00
Bill Currie
24a9b48127 rewrite bspfile.[ch] so they work off an object rather than global data.
The direct filesystem access is also removed. Fix up qfvis and qflight to
compile with the new bspfile. qfvis seems to work, qflight probably doesn't
2002-09-19 05:35:17 +00:00
Bill Currie
86f542a971 kill the last VFile ref and make the calculate the file size on opening for
reading (Qfilesize works only when Qopen is used in read mode).
2002-09-19 05:11:42 +00:00
Bill Currie
599fea0edb redo bspfile to use dynamic allocation for the arrays to avoid buffer
overflows. also fix up the verbosity levels in qfvis.c
2002-09-18 06:07:38 +00:00
Ragnvald Maartmann-Moe IV
d6a2b54252 Use ramps for spark showers, so they fade in color as well as alpha.
Lightning doesn't have a ramp, so it doesn't use this feature yet.
2002-09-17 02:14:58 +00:00
Bill Currie
eec3b7d8bc fix missed header commit 2002-09-14 07:51:53 +00:00
Bill Currie
f7b4dffcc0 get larger player skins working in gl 2002-09-13 05:32:28 +00:00
Ragnvald Maartmann-Moe IV
723b1c9690 Missed in last commit. Eeek... 2002-09-12 22:52:16 +00:00
Bill Currie
ecdd537183 beat sw gamma handling till GL works. after a fasion. it /looks/ like it was
beaten on.
2002-09-10 06:35:32 +00:00
Bill Currie
9f6f50699d remove vid_basepal, creating vid.palette (current palette) and host_basepal 2002-09-10 03:51:10 +00:00