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