Commit graph

101 commits

Author SHA1 Message Date
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
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
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
Brian Koropoff
1f6acdb0cc Make file::delete and file::move use QFS functions. 2003-05-25 05:42:01 +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
c3d18bd53a Make file::read and file::write use the new QFS functions. This allows
reading files out of paks from GIB. file::find still needs to be updated
(and renamed).
2003-05-22 02:32:38 +00:00
Brian Koropoff
fad902f0bf Fixed a thinko that was causing events not to run under certain
circumstances.
2003-05-17 17:36:10 +00:00
Brian Koropoff
ff5ad2ee1c Added text::white and text::brown builtins to produce text of specific
colors.
2003-05-16 07:24:58 +00:00
Brian Koropoff
6eaa5518a4 Nuke some dprintfs 2003-05-15 22:39:04 +00:00
Brian Koropoff
bf675e793e Fixed a few GIB bugs, added the chomp builtin. 2003-05-14 21:13:41 +00:00
Bill Currie
eb099ae0d3 make qf gcc 3.3 clean 2003-04-17 00:01:48 +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
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
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
Brian Koropoff
3b99b7366f Fixed two bugs in complex variable substitution. 2003-03-02 05:11:22 +00:00
Brian Koropoff
cd3fc3569b Fixed a bug on out-of-bounds array access attempts and enhanced the now-
functioning infobot.gib.
2003-03-01 07:24:58 +00:00
Brian Koropoff
2be8a851d5 Oops, make 'return' GIB builtin actually end the current function. 2003-03-01 02:44:58 +00:00
Brian Koropoff
7f72596ab5 Fix a bug with embedded commands and make the parser more anal about what
can be embedded.
2003-02-28 05:07:15 +00:00
Brian Koropoff
11596e4b42 Fixed a bug with parse trees being freed early. 2003-02-28 04:03:45 +00:00
Brian Koropoff
ce80fffe69 Massive bug and memory leak fixing. 2003-02-26 07:44:34 +00:00
Brian Koropoff
61d315755a Fix a braino that most likely broke concatenation. 2003-02-26 02:51:40 +00:00
Ragnvald Maartmann-Moe IV
5fc069753a Warning fix (c might be used before initialization).
Too tired to check if there's an actual bug there. Goodnight...
2003-02-25 08:35:31 +00:00
Brian Koropoff
020a9262f7 Made the parser anal about concatenation usage and fixed several bugs by
running /dev/urandom through carne to catch problems.
2003-02-25 08:04:48 +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
Brian Koropoff
71a4ff6379 Use floor() or ceil() based on sign for 'trunc' GIB math function. 2003-02-23 22:53:36 +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
Brian Koropoff
36774a612d Use atof when checking truth values. 2003-02-23 21:14:33 +00:00
Brian Koropoff
5acf0bbeda Fixed a bug in the 'contains' GIB builtin and added more to the GIB docs. 2003-02-22 07:19:51 +00:00
Brian Koropoff
a9fa6c06d5 Remove some stupid hacks so that negation works again. 2003-02-17 20:33:56 +00:00
Brian Koropoff
00d71f13f6 Make %var expansion actually work. 2003-02-17 08:55:40 +00:00
Brian Koropoff
f6da3baa1e Temporarily fixed GIB filesystem access until I can work out a system that
better meshes with the new QFS.  Fixed up some GIB scripts a bit.
2003-02-16 21:27:18 +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
Brian Koropoff
fc37941ca5 Tidied up some Sys_Printf()s that indent mangled. 2003-02-15 02:27:25 +00:00
Bill Currie
c91137e4db run gib through indent 2003-02-14 22:42:11 +00:00
Bill Currie
851d203916 work towards a more secure qfs 2003-02-14 22:36:10 +00:00
Bill Currie
68d2167c9e fix a sequence point issue that could cause index to be put on the stack
before being initialized
2003-02-14 20:36:15 +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
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
Brian Koropoff
5870c2cbce Nuked some code obsoleted by reference counting. 2003-01-31 21:47:16 +00:00
Brian Koropoff
48c3e5a6c3 Fixed a stupid, stupid bug. 2003-01-31 20:36:39 +00:00
Brian Koropoff
b0e6f46b7e GIB: Even more bugfixes. 2003-01-31 05:22:20 +00:00
Bill Currie
fdb74e1aba win32 doesn't like random 2003-01-31 04:40:40 +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