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