Bill Currie
81a57bb3fa
patch from phrosty for vc2005 support. includes fixes for a bunch of gcc-isms that crept in over the years.
2007-03-22 23:20:57 +00:00
Bill Currie
99c0954b47
the big dso visibility patch :). Sure, we have to have unique names for static builds, but with controlled visibitly we should get faster program loads (although this isn't C++, so it's not as bad) and complex plugins are cleaner.
2007-03-10 12:00:59 +00:00
Bill Currie
165600adc5
fix a very severe d'oh (specifying width caused a segfault)
2006-12-20 10:32:34 +00:00
Bill Currie
acd49060be
why did we ever decide not to support %d?
2006-12-20 08:45:49 +00:00
Bill Currie
4dba10d613
support %c for sprintf and make sprintf return a return string rather than a temp string
2006-12-19 14:15:27 +00:00
Bill Currie
3f3ec6404d
bare printf doesn't give very desirable results
2006-12-09 08:44:10 +00:00
Bill Currie
70ec9848e7
add PL_RemoveObjectForKey and make PL_D_AddObject take a normal C string for key instead of a pl string.
2006-12-09 06:00:36 +00:00
Bill Currie
c290e9a988
use plists for save-games. old save-games can still be read, but new ones will always be in the new format. might be a good idea to back up any old saves until more testing has been done.
2006-12-09 02:35:44 +00:00
Bill Currie
2a79f42eb5
progs now internally uses plists for entity/global initialization, with support for direct conversion from id's format. This means that the entity string in a map (or the external ent file) can be a plist.
2006-12-09 00:02:57 +00:00
Bill Currie
a6c50b8edd
use handles rather than pointers (whatever was I thinking?)
2006-12-02 06:50:59 +00:00
Bill Currie
3fb03fc2be
hah, should have been using __attribute__((used)) all that time (rather
...
than __attribute__((unused))). fixes the missing console in -x11
2005-08-04 15:27:09 +00:00
Bill Currie
4a21eb02c5
heh, slight oversight when implementing rcall using the param pointer
...
trick. ran into the exact same problem as passing addresses of locals to QC
functions. well, actually, that's exactly what it was, but done in the
engine. anyway, wound up potentially overwriting the params passed to the
function. fortunatly, due to how rcall works, only the first two params are
an issue.
2005-06-14 13:40:34 +00:00
Bill Currie
762aefc9b1
implement Raven's calling convention (rcall: first 2 params in opb and
...
opc). should give a general speedup to most progs.
2005-06-12 09:54:01 +00:00
Bill Currie
f65c25a7c2
oops, signage error
2005-05-01 08:30:30 +00:00
Bill Currie
a0612e27b9
d'oh, forgot to mark the string ref as freed
2005-05-01 00:01:28 +00:00
Bill Currie
f38fcd9086
catch attempts to use freed strings
2005-04-30 08:37:55 +00:00
Bill Currie
23f71485d1
more tree recovering. This includes Despair's anisotropy support work.
2005-01-02 14:23:20 +00:00
Bill Currie
4a7e2ff093
get the range of the zone right. crashing on what should be a perfectly valid value is just plain bogus :P
...
This is an imperfect revision of history.
2004-11-14 00:52:00 +00:00
Bill Currie
53ee50655c
allow the progs code to hook into the parsing processes
...
This is an imperfect revision of history.
2004-11-12 11:15:00 +00:00
Bill Currie
0effc54835
don't puke over a void field when dumping entities
...
This is an imperfect revision of history.
2004-11-12 11:12:00 +00:00
Bill Currie
0e324d1851
use the script api for parsing ent data and savegames
...
This is an imperfect revision of history.
2004-11-12 02:39:00 +00:00
Bill Currie
2a36c74120
add dynamic (freeable but unchangeable) strings
...
This is an imperfect revision of history.
2004-11-11 09:40:00 +00:00
Bill Currie
78d98ea787
remove the time pointer (not really needed)
...
This is an imperfect revision of history.
2004-11-09 22:32:00 +00:00
Bill Currie
8770df39e5
start documenting things (progs building still borked)
...
This is an imperfect revision of history.
2004-11-08 23:27:00 +00:00
Bill Currie
780fb41858
make a common call function and fix pr_trace such that it autoclears only when the execution session it's set in is exited
...
This is an imperfect revision of history.
2004-11-07 03:00:00 +00:00
Bill Currie
201252c1c0
FIXME cleanup and a missed win32 compile fix
...
This is an imperfect revision of history.
2004-11-06 02:21:00 +00:00
Bill Currie
f5bc90a53a
clean up some redundant progs functions (may be broken for a while)
...
This is an imperfect revision of history.
2004-11-05 11:49:00 +00:00
Bill Currie
33bc7858f7
avoid using the hunk in the progs engine (except for the override-able load and alloc functions) so tools (qfprogs and qwaq) don't need to create it.
...
register only the first instance of a progs provided string
This is an imperfect revision of history.
2004-11-02 04:59:00 +00:00
Bill Currie
633dada682
quaternion conjugate support (engine side)
2004-04-08 04:57:17 +00:00
Bill Currie
fc2413ff72
more quaternion work (should be working, haven't come up with tests yet)
2004-04-08 03:32:14 +00:00
Bill Currie
4882005a49
compile fixes (oops) and start working on quaternion support in qfcc
2004-04-08 02:33:20 +00:00
Bill Currie
8d6f634f30
engine side quaternion support
2004-04-08 00:56:30 +00:00
Bill Currie
ac67a50a9a
handle x % 0 by giving a 0 result
2004-02-20 00:25:08 +00:00
Bill Currie
a821f048a0
change FNC to FN and fnc to fn for function based opcodes
2004-02-11 06:52:19 +00:00
Bill Currie
c3f41e3e69
new opcode: state.f. same as state, but takes a 3rd float operand to
...
specify the step for calculating nextthink. accessed using
[frame, think, step] (state is [frame, think])
2004-02-11 01:43:33 +00:00
Bill Currie
5c9ffad6a1
oops, fix the line number doubling the /right/ way
2004-02-10 04:42:17 +00:00
Bill Currie
a371af75ab
don't double the source line number when on the function's first line
2004-02-10 01:54:33 +00:00
Bill Currie
432ae86cca
don't seg if the field def can't be found
2004-02-07 01:57:31 +00:00
Bill Currie
ecf4eabe9d
check return value... prevents segfault in menu code if menu.dat has issues
2004-02-07 00:04:00 +00:00
Bill Currie
080b973479
make globals without a def a lot easier to read (don't need to print the
...
address twice:)
2004-02-06 08:03:22 +00:00
Bill Currie
4472f943c5
minor cleanups and use escapes when printing strings
2004-01-31 08:34:01 +00:00
Bill Currie
2ac0f40f7a
fix an uninitialized variable
2004-01-31 07:29:11 +00:00
Bill Currie
24294c8778
make printing of global contents in PR_PrintStatement optional so
...
disassembly output is cleaner
2004-01-31 04:26:01 +00:00
Bill Currie
718c708cec
make global printing a little more robust
2004-01-30 08:46:14 +00:00
Bill Currie
e1afa3221c
minor cleanup
2004-01-30 07:55:32 +00:00
Bill Currie
390ca99a92
first step to making qfdefs redundant. "standard" progs now get resolved
...
staticly rather than looking up the defs. "broken" progs should now work.
2004-01-21 08:09:47 +00:00
Bill Currie
77b2942982
several libs can now get built as dlls in windows: console, gamecode,
...
gamecode_builtins, gib, image, modules, object, ruamoko and util.
2004-01-19 07:47:41 +00:00
Bill Currie
ba8e959cf2
when clearing the return strings, it's a good idea to clear them completely
2004-01-18 07:50:50 +00:00
Bill Currie
249aee2e9f
move the OO runtime support code from libQFgamecode to libQFruamoko where
...
it really belongs :)
2004-01-16 08:02:31 +00:00
Bill Currie
01392c78bb
move the bulk of what whas libQFcsqc to libQFruamoko.
2004-01-16 05:46:19 +00:00
Bill Currie
3ad2eaf3cd
allocate the aux function map properly
2004-01-08 04:04:55 +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
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
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
Bill Currie
7885d9ce25
make a local copy of the builtins table being register as it might need to
...
be modified
2004-01-07 02:48:11 +00:00
Bill Currie
cbe006a2fb
print an address if the def name is blank
2004-01-06 08:09:41 +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
fbe6c2f631
make the bad builtin number a warning and provide a suitable function in
...
case the function is called: allows progs with bad (but unused) builtins
to run anyway
2004-01-06 03:18:44 +00:00
Bill Currie
0ddb5eb822
report all bad builtins rather than just the first
2004-01-05 08:52:20 +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
211908e741
implement a couple more obj functions
2004-01-05 01:41:20 +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
538d669887
micro-tidy while pondering how to rework this whole mess
2004-01-04 03:24:37 +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
Bill Currie
0307618b15
use the passed "size" parameter rather than qfs_filesize: no telling
...
/where/ the progs really came from :)
2003-12-22 19:58:46 +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
e74cd75a0d
d'oh, forgot to relocate the builtins :P
2003-11-20 08:01:27 +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
aa37db997c
check for null function
2003-09-18 22:50:42 +00:00
Bill Currie
fea382d1d9
fix an accounting error
2003-09-15 21:13:13 +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
30e0cba25d
better formats for load* and store[bp]*
2003-09-04 05:30:55 +00:00
Bill Currie
a1fa0b3feb
make sure the pointed to def has a name before attempting to print it
2003-09-02 04:52:54 +00:00
Bill Currie
cf93f5f65e
oops, who let C++ into C? :)
2003-08-25 01:47:05 +00:00
Bill Currie
96202a5984
bah, forgot to -1 the instruction pointer for jumpb
2003-08-24 07:23:12 +00:00
Bill Currie
afb42f5ed0
fix the unsigned comparison opcodes
2003-08-24 05:53:15 +00:00
Bill Currie
253d19876c
no code to dump for a null function
2003-08-24 05:08:47 +00:00
Bill Currie
5d8bebfff8
implement class_get_class_method and (partially) class_pose_as
2003-08-24 03:44:12 +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
edb716ada0
oops, forgot to remove developer forcing
2003-08-23 06:21:35 +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
98beb38540
implement jumpb correctly
2003-08-22 19:48:36 +00:00
Bill Currie
cb6eba87ca
print the value even for unknown defs if the type is known
2003-08-22 17:32:55 +00:00
Bill Currie
a2300387de
fix a bunch of segfaults
2003-08-20 22:36:02 +00:00
Bill Currie
fe3b544528
handle "return 0" a bit better. assumes location is is always 0, but it
...
always has been (and always /should/ be anyway:)
2003-08-13 17:27:34 +00:00
Bill Currie
6f519c7e0f
don't bother doing the copy if the value to be returned is already in the
...
return slot
2003-08-13 17:07:05 +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
cbc6c40d33
get some single source instruction formats right and handle empty paths
...
properly
2003-08-05 17:27:47 +00:00
Bill Currie
59c26b5ce0
quick fix to handle .ent files starting with comments
2003-08-04 05:21:18 +00:00
Bill Currie
dd9ab1e050
get unsigned mostly working
2003-08-01 21:20:04 +00:00
Jeff Teunissen
f04d67f319
Nuke the old-style Object's dead built-in methods.
2003-08-01 16:42:02 +00:00
Bill Currie
cbd5c70320
oops, %O should be in hex
2003-07-31 01:57:29 +00:00
Bill Currie
72eca6a956
get the default right :P
2003-07-30 22:24:44 +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
Bill Currie
dcd143f197
missing/incorrect symbols fixed
2003-07-30 17:44:38 +00:00
Bill Currie
3886723467
fix some builtin method names due to the selector name fixes in qfcc
2003-07-27 19:57:40 +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
5481273639
start working on plist entity files
2003-07-17 18:27:00 +00:00
Bill Currie
043ec906c4
qnx patch from DrSpliff
2003-07-17 15:17:41 +00:00
Bill Currie
cb6bf2e2ae
minor house-keeping
2003-07-15 16:34:43 +00:00
Bill Currie
0cf0f710b7
remove some unneeded code
2003-07-09 15:34:58 +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
Brian Koropoff
0ba2481632
Applied taniwha's mem leak fix.
2003-05-15 21:59:19 +00:00
Bill Currie
dedb2fa6bf
get [super ...] working correctly
2003-05-15 05:58:31 +00:00
Brian Koropoff
72c21f60c9
Add support for GIB handles to the Rua interface.
2003-05-14 21:16:23 +00:00
Bill Currie
5f3573143a
the beginnings of a jihad against buffer overflows
2003-05-08 23:24:02 +00:00
Bill Currie
e16a211e1f
PR_SetString doesn't like null pointers, it seems. While fixing
...
PR_SetString would be a better fix, this is faster code.
2003-04-24 04:57:30 +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
eb099ae0d3
make qf gcc 3.3 clean
2003-04-17 00:01:48 +00:00
Brian Koropoff
e707e9bb89
Moved gib_*.h into include/ and moved the necessary declarations and struct
...
definitions to QF/gib.h to interface with libQFgib.
2003-04-13 22:07:58 +00:00
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
9afc3cf8f6
copyright date fixes
2003-04-10 16:54:12 +00:00
Bill Currie
7f31f05684
alpha compile fixes
2003-04-08 05:33:49 +00:00
Bill Currie
8fc721a2bb
plug another overflow
2003-04-08 04:01:20 +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
72036d76b0
hmm, forgot a chunk :P
2003-04-07 20:15:38 +00:00
Bill Currie
7001f1d851
plist api (hope it works:)
2003-04-07 20:02:06 +00:00
Bill Currie
33c9ce0f7b
add hash table api
2003-04-07 16:38:34 +00:00
Bill Currie
a72d3f6844
fix a segfault causing typo :P
2003-04-06 01:04:37 +00:00
Bill Currie
58541b6855
support printing a couple more types (especially for edicts)
2003-03-26 18:45:44 +00:00
Bill Currie
fafc578440
correct a comment and ws
2003-03-25 17:40:02 +00:00
Bill Currie
548d3b68f8
pr_load.c:
...
PR_RelocateBuiltins must be called before PR_InitRuntime
pr_obj.c:
don't segfault on broken classes
2003-03-13 18:45:45 +00:00
Bill Currie
2858bc4922
d'oh
2003-03-12 22:38:02 +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
bfaef7747b
the first fielddef isn't always null (esp with qfcc), so check to see if it
...
needs printing too
2003-03-05 18:18:42 +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
Bill Currie
93834f2694
better source line tracking
2003-02-24 16:01:52 +00:00
Bill Currie
38d5c8c41a
better line search algorithm (not perfect yet, though)
2003-02-24 03:34:11 +00:00
Bill Currie
5c3892cbb2
make sure the string is valid before attempting to print it
2003-02-24 03:07:26 +00:00
Bill Currie
72e5221f06
minor debugging tweaks
2003-02-21 15:09:02 +00:00
Bill Currie
152538bf90
zap the Cmd_Return stuff as that's dead and burried
2003-02-20 20:33:03 +00:00
Bill Currie
b6a3bc8d1c
try to give line numbers in the traceback
2003-02-19 06:26:49 +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
Bill Currie
8a9cd78072
fix up a couple of error cases (and catch them!)
2003-01-29 20:32:44 +00:00
Bill Currie
1342533234
make the PF_Find search field error more informative
2003-01-20 21:28:36 +00:00
Bill Currie
761a7546dd
re-arrange things so __attribute__ and __builtin_expect are properly
...
autoconfiscated so rcsid will continue to work with gcc 3.3
2003-01-15 15:31:36 +00:00
Bill Currie
71196fedf6
make gcc more anal about prototypes, string constants and function
...
visibility (ie, global functions must have a prototype)
2003-01-06 18:28:13 +00:00
Bill Currie
d78f34e795
fix some spelling errors
2002-11-20 21:21:22 +00:00
Bill Currie
06df342655
fix a stray ;
2002-11-15 14:56:57 +00:00
Bill Currie
d1199f23da
get categories working in the runtime :)
2002-11-14 20:42:48 +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
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
d46b37f940
use COM_CompressPath
2002-11-08 03:35:22 +00:00
Bill Currie
ec0273e3dc
do a pre and post pass for maps/mapname.cfg and use maps_default.cfg if
...
maps/mapname.cfg doesn't exist.
2002-11-08 02:43:04 +00:00
Bill Currie
ca4b3acd6c
big protototype cleanup. Now, except for a few cases, all non-static
...
prototypes are in headers files.
2002-11-05 19:12:51 +00:00
Bill Currie
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
Bill Currie
012cc58eb4
move the debug related stuff from pr_exec.c to pr_debug.c
2002-10-23 20:42:02 +00:00
Bill Currie
3a3da6a1c4
nuke PR_InitEdicts as it's redundant and only used in the tools due to
...
forgetting to remove it
2002-10-23 15:55:38 +00:00
Bill Currie
a4a5bb2d72
split out the parsing code
2002-10-23 04:57:08 +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
6203d450eb
resture pr_xstatement on return from PR_ExecuteProgram so recursive calls
...
don't mangle things with the new semantics of builtin calls
2002-10-22 02:51:57 +00:00
Bill Currie
aad04efe25
move the correct amount of bytes (I keep forgetting the * 4 :P)
2002-10-21 16:38:45 +00:00
Bill Currie
4810046f39
copy the correct number of bytes
2002-10-17 19:33:06 +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
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
Jeff Teunissen
575689296a
Tidy up progs dump output, and do some whitespace.
2002-10-08 19:46:42 +00:00
Bill Currie
eec3b7d8bc
fix missed header commit
2002-09-14 07:51:53 +00:00
Jeff Teunissen
e551c1f22b
New dump format for progs. It looks like assembly code. setting pr_debug to 2
...
or higher adds more debug information.
2002-09-14 07:00:40 +00:00
Bill Currie
bf53f43e13
make PR_break do a backtrace instead of crashing the server
2002-09-07 06:48:15 +00:00
Bill Currie
246ab0009c
Change Con_ClearTyping to take a save flag that will cause the current line
...
(if not empty) to be saved in the inputline history.
Clear the input (but put in history) of say or say team when pressing escape.
Don't say or say_team if the text is empty.
2002-08-28 16:02:43 +00:00
Bill Currie
ec47e08e1c
go back to using QFile, quakeio.h and quakefs.h
2002-08-27 07:16:28 +00:00
Bill Currie
8c82a54ac7
fix a 0 byte allocation
2002-08-26 00:30:31 +00:00
Bill Currie
09d89a3214
move bi_keys from csqc to pr_keys in targets allowing the server to link
...
with libQFcsqc (need a new name:P)
2002-08-21 02:25:51 +00:00
Bill Currie
5009213564
Move the signal handling code from video/targets/* to sys.c (I'm leaving
...
the SDL target files for Despair since he's working on the currently). Also
make progs segfault handling much more robust (and general: sigill etc too:)
2002-08-20 23:04:57 +00:00
Bill Currie
d328e18de2
implement the "new" inputline api making it possible to pull the Draw_*
...
functions out of bi_inputline.c. now somebody can be insane enough to
implement a qc controled console for the server ;) (more importantly, one
step closer to being able to have the server link with libQFcsqc (hah!))
2002-08-20 21:19:53 +00:00
Bill Currie
b99a72e876
pr_obj.c:
...
call obj_find_message with super instead of class when doing a super
lookup
client_menu.[ch]:
use the InputLine object instead of directly using the api
InputLine.r:
builint functions are = #0 , not = 0 :P
function.[ch]:
provide copy_params
method.[ch]
provide copy_keywordargs
expr.c:
call inc_users for the parm temp if it's a bind expression
revers a copy of the selector when building the selector name so the
selector doesn't get mangled
qc-parse.y:
catch erronous func = const inintializers (should be func = #const)
2002-08-20 02:09:34 +00:00
Bill Currie
2b1fd8e8c0
fix the menu keybinding not working bug
2002-08-19 02:48:38 +00:00
Bill Currie
c1c6c05cf5
pr_obj.c:
...
delay class fixups so order doesn't matter
class.c:
write out the class and category diffs properly
2002-08-16 22:53:37 +00:00
Bill Currie
c1f5659977
bi_inputline.c:
...
add InputLine_SetUserData
pr_resolve.c:
report the correct missing symbol (self instead of time)
2002-08-16 21:52:37 +00:00
Bill Currie
8adad57941
Make the cbuf api use a supplied cbuf rather than allocating its own. Kills
...
a FIXME and (Closes : #32 )
2002-08-14 18:45:09 +00:00
Brian Koropoff
cf48363c6e
More of GIB done: builtins, functions, various cleanups, math, etc.
2002-08-03 06:04:00 +00:00
Bill Currie
2ce0f2ded2
we now require modern autoconf (2.52+), automake (1.6+) and libtool (1.4+).
...
This gives us a bunch more flexibility. plugins no longer have the "lib"
prefix or the version suffix, they're now installed in
$fs_sharepath/QFplugins,, builds should take much less time (in general,
only one of pic or non-pic versions are build), bins and libs can have
individual CFLAGS
2002-08-01 19:49:10 +00:00
Brian Koropoff
439f9838d3
Whoops, missed some stuff that needed to be in idparse.h
2002-07-31 22:13:15 +00:00
Brian Koropoff
a93b221272
Split off the old console parser into idparse.[ch] and prepared the cbuf
...
struct and support functions for GIB mark III.
Oh yeah, I'm back.
2002-07-31 22:03:53 +00:00
Bill Currie
ad6e025a91
take cmd.[ch] back to basics. the gib code is temporarily gone pending
...
renovations. cmd_source handling is a little hacky in nq, but it's working.
2002-07-31 05:19:03 +00:00
Bill Currie
46ee46fdc6
dead code removal
2002-07-30 04:55:33 +00:00
Bill Currie
587ac5670b
using R_FLOAT for setting individual fields of the return vector ain't so
...
good a thing to do.
2002-07-25 14:58:02 +00:00
Bill Currie
de22355371
use P_* for params and R_* for return values in builtins code
2002-07-24 21:42:33 +00:00
Ragnvald Maartmann-Moe IV
227da6afba
Change pr_boundscheck default to 0. *grmbl*
2002-07-21 23:35:36 +00:00
Bill Currie
bff6291bfb
don't need to force developer now
2002-07-16 22:06:52 +00:00
Bill Currie
ac1392eb74
object.r:
...
define __obj_exec_class, obj_msgSend and obj_msgSend_super for the way
qfcc now handles these defs
pr_edict.c:
PR_ValueString now checks that the function is valid before trying to
print its name.
class.c:
__obj_exec_class is now extern
linker.c:
fix more mangled relocs
method.c:
obj_msgSend and obj_msgSend_super are now extern
qfcc.c:
fixes so obj_module_t doesn't get zapped
type.c:
fixes so obj_module_t doesn't get zapped
2002-07-16 19:03:56 +00:00
Bill Currie
35d224f1da
a little more info and force developer on for now
2002-07-16 15:39:49 +00:00
Bill Currie
34fa421638
whitespace
2002-07-13 03:41:33 +00:00
Bill Currie
717127e0d8
don't print ! on uninitialized global defs that are the correct type for
...
the instruction
2002-06-17 05:31:08 +00:00
Bill Currie
2264c28310
pr_strings:
...
remove a bogus 0x which caused confusion in an error message
def.c:
vector fields still need an extra 3 globals for their component fields
2002-06-16 05:24:58 +00:00
Bill Currie
88fc0be127
arrays are /almost/ working again
2002-06-12 22:37:18 +00:00
Bill Currie
0b1d1ade73
qfprogs can now read the debug data
2002-06-11 17:24:37 +00:00
Bill Currie
a4b06b1074
blah, enums and switch... (at least gcc 3.1 is warning about that again:)
2002-06-09 16:31:08 +00:00
Bill Currie
5c943d4ca9
this should speed up progs a little bit
2002-06-07 19:41:13 +00:00
Bill Currie
55fcead77c
look for the .this field but don't complain if not found
2002-05-31 17:21:38 +00:00
Bill Currie
a8e177652a
initialize the meta class super class pointer correctly
2002-05-31 14:58:42 +00:00
Bill Currie
2ee3aec19b
reverse the order of linking
2002-05-31 06:52:48 +00:00
Bill Currie
ea3c6995fd
actually /use/ method_list.method_next and chain the class methods onto the
...
instance methods for root classes.
2002-05-31 06:01:47 +00:00
Brian Koropoff
d85a238af2
Modified cmd.c to prepare for more file access functions and changed
...
the bind system to keep a restricted flag on binds to prevent the
server from executing restricted commands by binding them to keys.
2002-05-31 05:38:06 +00:00
Bill Currie
a7b5b56a2c
implement Z_Realloc, PR_Zone_Realloc and pr_obj_realloc
2002-05-29 20:58:53 +00:00
Bill Currie
33e055209e
Semi-major (more than minor:) progs convenience macro cleanup. There will
...
be more to come.
2002-05-22 22:35:37 +00:00
Bill Currie
ea36fceec5
fix a few missed initializations
2002-05-22 21:45:15 +00:00
Bill Currie
34ec521198
vararg functions can now be imlemented in qc using @argc (number of params
...
passed through ...) and @argv (array of vectors, one for each ... param)
2002-05-22 20:43:29 +00:00
Bill Currie
018b3ae536
more runtime implementation
2002-05-22 19:02:26 +00:00
Bill Currie
43e609241c
initial stab at supporting most of the obj runtime
2002-05-22 17:32:44 +00:00
Bill Currie
33daf1e724
provide temporary stubs for most of Object's methods
2002-05-21 23:39:21 +00:00
Bill Currie
3815d4be7e
blah, unitialized variable
2002-05-21 22:27:41 +00:00
Bill Currie
05c8cad2d1
grr, really should make compat.h include string[s].h
...
also, partially implement the messaging functions
2002-05-21 22:13:05 +00:00
Bill Currie
9820c5d45a
start working in the obj runtime. any and all functions named ".ctor" will
...
be run in the order found.
2002-05-21 21:29:49 +00:00
Bill Currie
a8c3fa8ffc
correct the function names in PR_EnterFunction and PR_LeaveFunction
2002-05-21 21:14:32 +00:00
Bill Currie
f78f921285
search for .self' before
self'
2002-05-18 00:49:16 +00:00
Bill Currie
057aa61bd3
`document' the type sizes
2002-05-17 16:44:47 +00:00
Bill Currie
8f0661f5be
correct the copyright year
2002-05-14 23:07:38 +00:00
Bill Currie
44dcf74627
strip the \n from all(?) of the Sys_Error calls (Sys_Error itself will be
...
adding \n).
2002-05-14 06:12:29 +00:00
Bill Currie
91779b04f7
new tool: qfprogs. currently only disassembles progs, but the idea is for it
...
to become a progs oriented nm, objdump etc
2002-05-13 19:37:36 +00:00
Brian Koropoff
3fffa26fb4
Added thread support to GIB and cleaned up escape characters yet again.
...
With any luck it should actually work this time. Added the getimpulse
command so that GIB scripts can check if an impulse command is pending
before sending their own. Fixed all the memory leaks I could find.
QuakeC and GIB seem to be clean except for maybe one or two sneaky leaks
I can't track down.
2002-05-11 00:36:12 +00:00
Bill Currie
73e6cf062c
implement type encoding
2002-05-10 23:19:57 +00:00
Bill Currie
403af77038
give qc access to Cmd_Return
2002-04-14 01:25:24 +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
Bill Currie
47a94ed6af
clear out the string hash resources completely
2002-04-09 16:21:27 +00:00
Bill Currie
8588d2d1cd
fix a silly braino in the resources code that was causing the resource
...
structs to not get linked into the chain
2002-04-09 16:06:05 +00:00
Bill Currie
9dd7deb798
better catching of invalid inputline pointers
2002-04-09 15:29:48 +00:00
Brian Koropoff
388ff7b597
Some bug fixes and memory leak fixes. Local variables break randomly,
...
probably due to my misuse of hash tables. Anyone have any ideas?
2002-03-20 22:57:26 +00:00
Robin Redeker
18082533d5
Fixed some memory problems in my string-hashes.
2002-03-19 18:08:07 +00:00
Robin Redeker
489bc7291a
Playermenu working now fine.
...
Added some api-functions to complete playermenu.
(Playermenu isn't still finished)
2002-03-19 17:07:56 +00:00
Robin Redeker
adca50e52b
Did further working on the menu code.
...
Added a _unfinished_ Player options-submenu, for setting
the name, top-/bottomcolor.
Added Draw_Fill and such to the progs api.
Added some comments.
2002-03-16 20:22:01 +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
f0609f04f3
forgot about the need for the proto itself
2002-03-12 17:44:45 +00:00
Bill Currie
adbb59c5dd
fix missing prototype for fnmatch on some systems
2002-03-12 17:36:17 +00:00
Bill Currie
d5fe4e3130
make file open a little more secure
2002-03-11 19:01:13 +00:00
Bill Currie
9ea013888b
eliminate GetEdictFieldValue, mostly merge SV_AddGravity, and clean up
...
some whitespace in sv_phys.c
2002-02-25 07:44:17 +00:00
Bill Currie
b5c2c0e14e
clean up a fixme. this doesn't fix serplord's out-of-bounds problem, but
...
that's because his qc compiler is doing weird stuff.
2002-02-11 19:36:36 +00:00
Robin Redeker
67d53f4e56
Added some QC-API functions: String_Cut, String_Len, Key_CountBindings.
2002-02-02 09:38:19 +00:00
Robin Redeker
fa575a3475
Added a start for the QC-Keys-API
2002-01-31 21:08:45 +00:00
Bill Currie
681950cf26
print [val] for pointers
2002-01-30 22:14:13 +00:00
Bill Currie
40e987c071
provide InputLine_SetWidth so the drawn width can be set
2002-01-30 21:25:00 +00:00
Bill Currie
6d63d1d55b
implement comparisons and not for pointers
2002-01-30 21:20:12 +00:00
Bill Currie
e1abe4c44b
finalize the crc of the progs file
2002-01-30 21:13:57 +00:00
Bill Currie
7ef4426775
inputline api `done'. now just to get it working
2002-01-30 08:41:18 +00:00
Bill Currie
ee3f51f13b
"" to <> for system headers
2002-01-30 08:34:44 +00:00
Bill Currie
c76f7d88ce
fix an API snafu (oops:)
2002-01-30 08:09:53 +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
21b6e68a8c
break out the non-edict code into sensible locations
2002-01-28 17:15:36 +00:00
Bill Currie
08210bc93f
fix an accidental double byteswap that broke progs for big-endian machines
2002-01-24 04:43:47 +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
16cc0c22c9
forgot to implement store.p
2002-01-23 22:33:22 +00:00
Bill Currie
d5fb0f5a68
fix some .. path compression bugs
2002-01-21 17:36:22 +00:00
Bill Currie
9833b7009d
oops, forgot to remove the debug code
2002-01-21 16:48:08 +00:00
Bill Currie
f3efed94e5
.0 isn't valid for integer formats
2002-01-21 16:47:50 +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
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
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
7def88668a
fix a goof with the progs loader for the server interface
2002-01-18 23:53:51 +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
Bill Currie
d69762facd
integer() and float() casts seem to work
2002-01-17 19:32:04 +00:00
Bill Currie
9d59d953bd
more cleanups
2002-01-12 05:32:21 +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
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
Bill Currie
cc34e5954f
lots of work on better array/pointer/struct handline. doesn't quite work yet
2001-12-12 08:39:47 +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
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
12a0a10d33
more alpha portability fixes
2001-11-29 19:35:25 +00:00
Bill Currie
67fde0c492
remove some debug code I accidently committed
2001-11-26 17:25:16 +00:00
Bill Currie
712aecb1a2
use the Hash_*Element functions for opcodes to avoid the silliness of trying
...
to use strings for numeric keys
2001-11-20 18:54:15 +00:00
Bill Currie
8d208ac3aa
make float != 0 tests work on alpha for when the value is actually an integer
...
(works fine on intel, but on alpha the denormals either produce an exception
or true zero: not quite desirable:)
2001-11-19 17:51:31 +00:00
Bill Currie
9d0320cc89
various portability improvements
2001-11-18 23:40:01 +00:00
Bill Currie
cda6923ffa
this seems to be all that's needed to make progs 64 bit clean (minus issues
...
with sizeof (int) != 4, but that's not the case on alpha)
2001-11-17 04:32:00 +00:00
Bill Currie
cc66577f1c
fixes for building on alpha (linux)
2001-11-16 01:09:17 +00:00
Bill Currie
598c82352f
fix printing of op_c for storeb
2001-11-15 19:36:40 +00:00
Bill Currie
7888f1cb93
fix a couple of branch offset bugs
2001-11-13 19:52:03 +00:00
Bill Currie
4af2b18703
support printing uinteger values
2001-11-13 18:04:55 +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
d168a3daee
this should remove the requirement for gmake on bsd systems
2001-11-12 16:23:41 +00:00
Bill Currie
4be5c86f36
forgot to add "uinteger" to the array of type name strings
2001-11-09 01:03:35 +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
Bill Currie
f3fcfea62a
fully specify the type for the comparison opcodes
2001-11-06 21:29:53 +00:00
Bill Currie
469fd1b023
more mathlib usage
2001-11-06 20:36:20 +00:00
Bill Currie
9f4a565523
rename some get_key functions so they're all uniqely named (matters only for
...
profiling purposes thanks to static:)
2001-11-05 03:21:42 +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
Bill Currie
166ce6d8ce
redundant code removal
2001-11-02 03:04:01 +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
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
b3914eeaaa
elimination of bare printf (with some exceptions) from libs: Sys_Printf is
...
used instead
2001-10-18 16:42:14 +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
Bill Currie
8c6e5456bb
type b of not.i is void, not integer
2001-10-02 19:17:18 +00:00
Adam Olsen
e12f1dcf9e
- boundscheck static progs strings, and give proper errors for that
...
and dynamic strings if it fails.
2001-09-28 23:34:49 +00:00
Jeff Teunissen
d63243380f
Aaaaaaand, it's done!
...
Special note: I hope to never do this again. :)
2001-09-28 10:31:20 +00:00
Bill Currie
b1f4a778f9
the rcsid commit from hell }:>
2001-09-28 06:26:31 +00:00
Adam Olsen
376f05d357
- add some conversion builtins, now we have ftoi, ftos, itof, itos,
...
stof, stoi, stov, and vtos.
- fix PF_sprintf
- add FFnameFF support, where it tacks <userid> after the nick on the
console.
2001-09-26 22:26:31 +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
Adam Olsen
a159e852e6
- add some comments to libs/console/inputline.c
...
- rename pr_deadbeef to pr_deadbeef_ents
- add pr_deadbeef_locals, which does uninited locals. (crashes from
it are undeniably buggy code, unlike pr_deadeef_ents)
- add a missing break to packetlog printing's switch
- add sv_kickfake, which kicks people for attempting to fake messages,
or replaces the ^Ms with # if disabled.
2001-09-23 00:36:21 +00:00
Adam Olsen
9448063c67
- use etype_T instead of int (just so it's clearer in debugging)
2001-09-21 19:28:08 +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
Adam Olsen
f59c2a2a0b
- build fix for without curses
...
- add a "zombie" line to edictcount, which is the number of ents that
are "free" but not long enough to be reused.
2001-09-20 19:34:02 +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
Ragnvald Maartmann-Moe IV
55dfead066
Typos (really ought to remember to test compile *before* committing, rather than immediately after).
2001-09-10 13:05:13 +00:00
Ragnvald Maartmann-Moe IV
dc947ce8f5
Whitespace.
2001-09-10 12:56:23 +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
Bill Currie
abb1469364
fix a minor but important thinko that caused a nasty seg
2001-08-27 05:15:39 +00:00
Adam Olsen
5e4d7e4376
Add a sprintf builtin
2001-08-27 03:17:59 +00:00
Ragnvald Maartmann-Moe IV
707c4aa44b
I like it better when quakeforge compiles.
...
-Werror feels otherwise.
*grmbl*
2001-08-26 13:24:38 +00:00
Adam Olsen
74e9786cd1
Extend PF_Find to support searching for different field types
2001-08-26 06:35:03 +00:00
Ragnvald Maartmann-Moe IV
6e73ba0e7a
Whitespace, plus comment out unused code.
2001-08-26 01:08:09 +00:00
Adam Olsen
72f91dc9bc
comment cleanups, and a little harmless (?) bugglet fix in the
...
charcount builtin's error handling code.
2001-08-26 00:05:31 +00:00
Adam Olsen
2bf0fa910f
Rework ED_Print to be type-aware, instead of blindly assuming
...
everything is an integer.
2001-08-22 21:07:06 +00:00
Adam Olsen
e9ec5f867f
A few tweaks and cleanups
2001-08-22 05:37:50 +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
Adam Olsen
9ea52e8239
Move the gamecode engine into a subdir.
2001-08-21 21:05:26 +00:00
Bill Currie
8059265181
pr_strings.c:
...
fix some off-by-one bugs
gl_mesh.c:
make the messing... message developer mode
2001-08-15 06:01:38 +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
d55199bece
re-arrange the types of store and storep so things make a little more sense
2001-08-13 23:00:17 +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
45fd3e084d
rhamph's deadbeaf locals patch as-is :)
2001-08-13 20:29:33 +00:00
Bill Currie
31a560cc3f
d'oh
2001-08-13 20:23:41 +00:00
Bill Currie
da7e8568a4
fix a couple of issues with garbage collection
2001-08-13 20:22:36 +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
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
Adam Olsen
dc98a63098
Add a getfunction, which gives an error if it's not found
2001-08-04 23:44:50 +00:00
Adam Olsen
c218ede288
Add support for checkfunction, which is a builtin that searches for
...
another builtin by name, and returns it.
Soon I'll change all our new builtins to by allocated dynamically, as
well as changing the number checkfunction uses, and happily break
everything that uses them :D
2001-08-04 09:11:50 +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
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
bad184b11b
change the results of the test instructions from float to int.
2001-07-22 19:58:17 +00:00
Bill Currie
67d20e0b70
remove all the _IF, _FI, _IV and _VI instructions (none yet enabled) as I don't
...
want to implement implicit integer <-> float `conversions'
2001-07-22 19:27:17 +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
47a6f2c9b5
pr_debug.c:
...
capitolise CRC and add a \n to the message
sv_progs.c (both nq and qw):
don't bother checking the progdefs.h crc: it's just not needed any more
pr_imm.c:
use r instead of rep when checking the hash tables.
main.c (quaq):
make developer work and set com_filesize (otherwise, progs crc doesn't
get set properly (com_filesize, not developer:))
2001-07-18 21:28:41 +00:00
Bill Currie
33e506e943
make PR_RunError back up to the preceding source line if debug is availalbe
2001-07-18 20:52:12 +00:00
Bill Currie
5a86b66054
fix a typo
2001-07-18 20:49:57 +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
0576dec1e2
split up PR_LoadProgs a bit
2001-07-16 07:13:10 +00:00
Bill Currie
1c9e1b176f
fear the mighty const correct patch
2001-07-15 07:04:17 +00:00
Bill Currie
0cbb0bf396
add pr_source_path to specify where to look for the source files
2001-07-15 02:57:36 +00:00
Bill Currie
2771e6385c
oops, used the wrong function to look up .debug_file
2001-07-15 02:05:29 +00:00
Bill Currie
66c8f00dc7
print out source line numbers when available
2001-07-14 23:53:59 +00:00
Bill Currie
d0d32b6a1a
I've really got to start testing with gcc 3.0
2001-07-14 04:12:48 +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
14ce770714
report statment addresses for current statement and branch destinations when
...
printing statements
2001-06-28 23:58:01 +00:00
Bill Currie
340e104778
/D'OH/!!! How many /years/ have I been working with linked lists and free?
2001-06-11 22:42:05 +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
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
3009d0e0c8
fix up some overzelous s///
2001-06-07 22:15:37 +00:00
Bill Currie
521b86f56a
Massive clean up of progs accessors. Just the cleanup of the casts fixed the
...
CustomTF doors issue.
2001-06-07 21:59:24 +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
Bill Currie
37661f3cce
allow NUM_FOR_EDICT to work with a null edict no matter what (hopefully not a
...
bad thing)
2001-06-06 00:38:05 +00:00
Bill Currie
ce014fc5c7
use memcpy instead of ugly casts to transfer locals
2001-06-05 23:57:51 +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
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
Adam Olsen
d4df66570f
Add ED_FreeRefs, which searches for references to an entity. Not used yet.
2001-06-03 05:54:43 +00:00
Bill Currie
e699f6e888
if progsname is null, assume the progs are already loaded and just process
...
the data.
2001-06-01 21:14:50 +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
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
0b117b7133
*sigh*, well, it turns out that even id's qc is borked when it comes to
...
unallocated entities, so make 0xdeadbeef optional (pr_deadbeef 1 to turn it
on).
2001-04-22 04:58:33 +00:00
Bill Currie
4be4e5ccf6
clear not-yet allocated entities to 0xdeadbeef
2001-04-20 17:51:57 +00:00
Bill Currie
1b972cb132
clear freed entities to 0xdeadbeaf instead of 0
2001-04-19 22:42:01 +00:00
Bill Currie
09271f061a
somehow missed this earlier
2001-04-11 03:55:48 +00:00
Joseph Carter
2bc55b7828
Cvar cleanups.. NULL is now used in place of 0 for callbacks, this should
...
make Cvar_Get's a lot easier to read.
2001-04-10 23:39:30 +00:00
Bill Currie
dfbfd9463c
mingw cross compile fixes. qw-server (only, so far) compiles but does not
...
yet link due to Sys_Error :/
2001-04-10 20:07:11 +00:00
Bill Currie
e939ccc40a
cvars now sport a callback function that gets called whenever the cvar changes
...
or on initial get.
2001-03-31 01:02:52 +00:00
Jeff Teunissen
277c17cfd8
Shared library support. The util and gamecode libraries are now shared,
...
and this clears the way for an external API for utilities and
such. And yes, this means libtool is now used.
2001-03-29 09:07:44 +00:00
Bill Currie
cb5c262ffc
qtypes.h:
...
remove includes of qdefs.h and compat.h
pr_comp.h:
merge pr_comp.h from quake and qfcc, removing the copy in qfcc
cmdlib.[ch]:
nuke the endian code.
qendian.c:
initialise the LittleLong etc pointers at compile time rather than run
time
com.c (both nq and qw):
nuke the LittleLong etc init code
everything else:
fix up after the qtypes.h cleanup
2001-03-28 17:17:56 +00:00
Bill Currie
067db089a2
make edict pruning, field parsing and the builtins part of progs_t like they
...
should have been
2001-03-27 22:39:21 +00:00
Bill Currie
f78b973978
move the api headers into include/QF and clean up (most of) the resulting mess.
...
target specific files that I don't build won't compile yet. just put QF/
infront of the offending headers.
Also move ver_check into libqfutils
2001-03-27 20:33:07 +00:00
Bill Currie
f6073d756f
better progs access error checking and cleanups resulting from it. Fixes
...
mega2k and nq.
2001-03-27 03:57:17 +00:00
Bill Currie
771648a5b4
forgot to remove the old prstring stuff
2001-03-06 16:10:28 +00:00
Bill Currie
97bf8d2c51
garbage collector implemented but untested. Also unsused because the issue is
...
WHEN to call it. I don't imagine it will be cheap :/
2001-03-06 05:29:46 +00:00
Bill Currie
4489319298
first step towards garbage collected dynamic strings in qc. All strings
...
external to the progs file are now malloced and then freed at progs reload.
All that needs to be implementd for gc to work is the scanner and deallocator.
2001-03-06 04:22:33 +00:00
Bill Currie
f40b361fb3
hash.[ch]:
...
slight api change: the getkey and free functions now take a user data
parameter (which is an aditional parameter to Hash_New.
cmd.c, cvar.c, quakefs.c:
clean up the resulting errors.
pr_edict.c:
use hash tables for lookups of function, global and field definitions.
should speed things up a bit, ESPECIALLY when type checking is enabled.
2001-03-05 05:11:26 +00:00
Bill Currie
aad21e3c00
put the pointer comparison back in so dynamic strings don't cause blowouts
2001-03-05 04:15:59 +00:00
Bill Currie
234dcb4cc9
better(?) string sharing. e1m3 died a sad death in nq due to running out of
...
strings, but that was because only the address of the string was checked for
similarity. Now strequal is used.
2001-03-05 04:08:08 +00:00
Bill Currie
021c1347ed
remove the reliance on MAX_EDICTS
2001-03-04 05:42:26 +00:00
Bill Currie
8e52f7dc39
more nq fixes, not there yet
2001-03-03 09:09:39 +00:00
Bill Currie
26c387408c
fix a silly edict print bug
2001-03-02 23:07:21 +00:00
Bill Currie
6c9de8061b
fix the silly OP_STATE bug. also erradicate pr_offs.c and its contents (the
...
source of the bug)
2001-03-02 19:18:04 +00:00
Bill Currie
ffc5838599
more debug changes. not there yet
2001-03-02 00:32:10 +00:00
Bill Currie
be8f1cef7c
just some temporary debug info
2001-03-01 23:30:55 +00:00
Bill Currie
6f590ff9d0
forgot to change ev_function to ev_func in pr_edict and pr_exec was using the
...
wrong time. weaponframe still not fixed, but static entities were fixed in the
previous checkin
2001-03-01 23:03:40 +00:00
Bill Currie
ad18afaa3c
really clean up global and function access. Unfortunatly, frames are still
...
borked, at least for the view entity.
2001-03-01 08:34:30 +00:00
Bill Currie
cc43c91c89
fix classname field finding
2001-02-28 23:33:16 +00:00
Bill Currie
63b990cd30
qw-server builds, but dies a sad death. I REALLY REALLY NEED to clean up my
...
progs globals and edict fields accessors, but I'm not so sure that's the cause
of the run-time error:
SV_Error: SV_ModelIndex: model progs/player.mdl not precached
Fatal error: SV_Error: SV_ModelIndex: model progs/player.mdl not precached
I suspect I failed to find the spawn function.
2001-02-28 22:44:38 +00:00