Commit Graph

2540 Commits

Author SHA1 Message Date
Bill Currie 834417b8c8 Add "debug" diagnotic printing, and use it.
Debug diagnostics are silent for verbosity levels less than 1.
2011-01-28 13:28:45 +09:00
Bill Currie a37bdd9fb5 Free removed sblocks. 2011-01-28 13:23:20 +09:00
Bill Currie 80424f6ad5 Ensure functions are always properly terminated.
Control that reaches the end of a function must see a return statement.
2011-01-28 13:14:30 +09:00
Bill Currie 9159daf99d Do simple unreachable block analysis and dead block removal. 2011-01-28 11:45:04 +09:00
Bill Currie 90a2738459 Add the label to the block to which it refers. 2011-01-28 11:41:53 +09:00
Bill Currie c158b14286 Remove the labels list from the pr struct.
I'm not sure they were ever needed.
2011-01-28 11:40:25 +09:00
Bill Currie 4738c767a2 Fix branch label handling.
Conditional branches and goto now go to the correct location.
2011-01-27 21:11:32 +09:00
Bill Currie 95b17d9fd4 Rename add_statement_ref to add_statement_def_ref. 2011-01-27 21:10:37 +09:00
Bill Currie bd78b8a7ee Enable more end-of-compilation code. 2011-01-27 15:44:12 +09:00
Bill Currie cdea1d07aa Produce code for progs.src mode.
Separate compilation will take fixing object files.

The generated code is broken due to various relocation fixups being
broken, and float immediates seem to be badly broken.

Debug information is broken too.
2011-01-27 15:44:11 +09:00
Bill Currie c7bbd40df6 Give special treatment to opcodes that have void operand types. 2011-01-27 15:44:11 +09:00
Bill Currie 71b5decbe8 Get assignments to .return working.
I really do not like the mechanism I currently use for handling pointer
derefences vs pointer assignments, but this will have to do for now until
I can get qfcc producing code again.
2011-01-27 15:44:11 +09:00
Bill Currie 56106892c8 The & operator produces a pointer, not void. 2011-01-27 15:44:10 +09:00
Bill Currie 1c3cc571f1 Pascal variables need defs too. 2011-01-27 15:44:10 +09:00
Bill Currie f532fbc6df Convert all integer operands to float for v6 progs.
Converting only opc is no longer enough.
2011-01-27 15:43:59 +09:00
Bill Currie 1ed1efbdfb Implement the ROTL macro correctly.
Bit rotation requires unsigned ints.
2011-01-27 15:43:50 +09:00
Bill Currie a6e65488ec Remove the "test" parameter from test_expr.
The parameter became redundant at some stage.
2011-01-27 08:31:51 +09:00
Bill Currie f7d60397fb Set the type for zer_def used by labels. 2011-01-26 22:43:59 +09:00
Bill Currie 36c99a8da1 Get function def creation working again. 2011-01-26 14:48:22 +09:00
Bill Currie 5231e8e9f8 Handle .zero, .return and .param* properly. 2011-01-26 08:01:24 +09:00
Bill Currie 4966120e3b Untwist param's knickers. 2011-01-25 20:21:41 +09:00
Bill Currie 6ce3c5a59a Get statments being emitted to the code segment.
The first function seems to work fine, but there's a problems with the
scope of params causing params to get their knickers in a twist (tangled
linked list).
2011-01-25 15:46:48 +09:00
Bill Currie fd3b594ca5 Move label relocs to the relevant statement block. 2011-01-25 15:45:31 +09:00
Bill Currie 849d013f5e Allocate space for function parameters. 2011-01-25 15:43:57 +09:00
Bill Currie f45919df09 Need alias defs after all. 2011-01-25 15:42:26 +09:00
Bill Currie a648f043de Give functions their own defspace.
The defspace is propogated through the function's sub-scopes.
2011-01-25 12:34:45 +09:00
Bill Currie 27c5139612 Give defspaces some backing memory.
I'm not sure I want all defspaces to have backing memory, but this will do
for now.
2011-01-25 12:16:13 +09:00
Bill Currie 34ffce50fa Ensure current_symtab gets set at the start of parsing.
current_symtab must be set even if the first thing encountered is a syntax
error.
2011-01-25 12:16:13 +09:00
Bill Currie 69b889756d Fix a misplaced ! 2011-01-25 12:16:13 +09:00
Bill Currie 726f293d0d Allocate space for defs and handle basic initializations.
Block initializers (arrays and structs) are still broken.
2011-01-25 12:16:13 +09:00
Bill Currie 30701980bc Get QC cfunctions and defs working. 2011-01-25 12:16:13 +09:00
Bill Currie ade2e92ea4 Fix the immediate breakage in immediate handling. 2011-01-25 09:08:11 +09:00
Bill Currie 7e914b8c53 Fix copyright headers.
Add forgotten templates and fill in the information in places I had
forgotten. I hope I got the dates right (timezone issues).
2011-01-25 09:01:37 +09:00
Bill Currie 49b7c2d527 Document make_symbol 2011-01-25 09:01:37 +09:00
Bill Currie 0624408317 Move the diagnostic functions into their own file. 2011-01-24 21:54:57 +09:00
Bill Currie d618e51dc8 Move save_string and make_string into strpool
Might not be the perfect place, but at least they're strongly related.
2011-01-24 21:32:48 +09:00
Bill Currie 483cbeba03 Fix a few FIXMEs. 2011-01-24 21:13:37 +09:00
Bill Currie afc5b2827d Simplify def handling, use far data.
Since there is now a proper symbol table, defs are now just references to
memory locations and the symbol table takes care of duplicates.

Also, start using far data for ObjQC structures.

The qfo functions have been stubbed out until I figure out what to do with
object files in the new scheme.
2011-01-24 15:41:43 +09:00
Bill Currie ce02fe8660 Fix the order of paramenters in the tree output.
Also get call nodes looking a little better.
2011-01-23 12:59:30 +09:00
Bill Currie a79b6f0a6c Partially implement casts. 2011-01-23 11:53:08 +09:00
Bill Currie bf626c9e00 Fix some simple fixmes 2011-01-23 11:13:56 +09:00
Bill Currie 20b14af024 Add "is_math" type check and use for unary +/-. 2011-01-23 11:12:58 +09:00
Bill Currie 341f370662 Rename is_math() to is_math_op(). 2011-01-23 11:12:05 +09:00
Bill Currie dea6771d92 Create type_nil for passing nil into ... 2011-01-22 16:41:31 +09:00
Bill Currie 4ac80c2932 Get qfcc running again.
It segs when it tries to link, but that's because a real object file has
not been created yet. However, I can get my tree and flow diagrams :)
2011-01-22 15:52:57 +09:00
Bill Currie 55d3d17807 Add a missing break.
"return" falling through to "goto" was bad news :)
2011-01-22 15:52:01 +09:00
Bill Currie d5f669af7a Nuke temp reference counting.
The whole reason for this crazy developement branch :)
2011-01-22 11:40:53 +09:00
Bill Currie 3b462e16cf Produce flow diagrams of the basic blocks. 2011-01-22 11:40:53 +09:00
Bill Currie 246778b5de Use function pointer tables instead of switch.
This seems to be better for complicated code. switch seems to be better
suited for relatively simple code.
2011-01-22 11:40:53 +09:00
Bill Currie 2f09efe547 Break out print_expr into its own file. 2011-01-21 20:31:40 +09:00
Bill Currie bcb2667b73 Possibly get vector calls working. 2011-01-21 19:40:46 +09:00
Bill Currie 52b561f7cb Nuke bind expressions.
Since I'm planning on implementing CSE and other optimizations, they're
rather redundant (and I'm having trouble getting them to work).
2011-01-21 19:07:58 +09:00
Bill Currie 0d01930056 Link a bool to its block rather than the block's head.
This makes the flow make a little more sense.
2011-01-21 18:50:17 +09:00
Bill Currie 977c48d728 Make operator type overrides clear. 2011-01-21 15:57:53 +09:00
Bill Currie aec9f256a7 Get calls mostly working.
Bind seems to be broken, but parameters seem to be being set correctly.
2011-01-21 15:54:53 +09:00
Bill Currie 5c5fa67e43 Minor tweaks of the expression tree output. 2011-01-21 15:34:42 +09:00
Bill Currie 96fae582e3 Implement bind expressions. 2011-01-21 11:27:40 +09:00
Bill Currie 4a24393d8d Temp expressions now use operands instead of defs. 2011-01-21 11:26:43 +09:00
Bill Currie 2998e578fb Get very basic deref assignments working.
More complicated expressions will not work yet.
2011-01-21 10:59:16 +09:00
Bill Currie ff6e2584da Handle block sub-expressions that produce results. 2011-01-21 10:57:47 +09:00
Bill Currie 16e013ff5d Allow the operand to override the symbol's type. 2011-01-21 10:56:32 +09:00
Bill Currie 3f2793ef72 Get a lot of statements being generated. 2011-01-20 23:26:13 +09:00
Bill Currie e45ea4b2ae Move the statement printing near the top of the file. 2011-01-20 18:07:24 +09:00
Bill Currie 35b7278967 Re-disable the next-edge constraints.
This gives a flatter layout.
2011-01-20 15:36:10 +09:00
Bill Currie 08e387ebac Slight improvement to branch instruction nodes/labels. 2011-01-20 15:33:13 +09:00
Bill Currie f8cc347dce Print expressions as dot files.
While the resulting images can be a little confusing, they're much easier
to read than my cryptic postfix notation.
2011-01-20 15:23:19 +09:00
Bill Currie 0594609b3a Get the label from the right expression. 2011-01-19 22:25:43 +09:00
Bill Currie 5deda9c9b9 Clean out ex_def as ex_symbol replaces it. 2011-01-19 22:25:04 +09:00
Bill Currie b5424bca7d Start work on getting expressions converted to internal statements. 2011-01-19 15:47:45 +09:00
Bill Currie cac2e04b18 Avoid namespace issues with dstatements. 2011-01-19 11:35:34 +09:00
Bill Currie f2ef24d0cc Make symbols use the new value struct for constants. 2011-01-19 11:09:54 +09:00
Bill Currie e08efe036b Move the constant expression values into their own struct. 2011-01-19 08:43:24 +09:00
Bill Currie ff6e1b4d6c Get functions attempting to generate code.
However, the statements are only printed as expressions.
2011-01-19 08:38:09 +09:00
Bill Currie 87ce9f5333 Get basic function creation working.
Even more FIXMEs, but the pascal parser can now create functions. The
function records even get emitted.
2011-01-18 12:47:13 +09:00
Bill Currie 8fb1b49a9d Add support for function symbols. 2011-01-18 10:46:42 +09:00
Bill Currie b186173d18 Fix a segfault in structure finalization. 2011-01-18 08:59:44 +09:00
Bill Currie 21c0c960ae Initialize data before types.
This is needed for string data. It might be better to init saved strings
separately, but this works for now.
2011-01-18 08:58:43 +09:00
Bill Currie 3fe7a7250a Handle unnamed structures in make_structure.
Symbols may not have null names.
2011-01-18 08:56:47 +09:00
Bill Currie b76a5c5284 Add my QuakePascal test program.
Trivial as it is...
2011-01-17 22:44:58 +09:00
Bill Currie ea3895805b Rewrite much to use symbols and symtabs. Gut emit.c. Massive breakage.
That which isn't rewritten is horribly broken. However, this does include a
nice mechanism for building QC structs for emitting data.

emit.c has been gutted in the spirit of "throw one away".

There is much work to be done to get even variables emitted, let alone
code. Things should be a little more fun from here on.
2011-01-17 22:34:41 +09:00
Bill Currie 85de101aa3 Break out the defspace code.
This also makes some improvements to the free block handling code.
2011-01-17 22:34:41 +09:00
Bill Currie d3a98af783 Make internal_error globally available. 2011-01-17 22:34:41 +09:00
Bill Currie 537b930ba6 Add new_symbol_type to ease creation of typed symbols.
This is inteded for code generation functions that need to create
variables and structures.
2011-01-17 12:04:41 +09:00
Bill Currie ffea505678 Cleanup QC's constant handling based on QP. 2011-01-14 12:10:28 +09:00
Bill Currie c38ea0b1bc Correct the spelling of "nil". 2011-01-14 12:07:40 +09:00
Bill Currie c0b8d0febe Test __PRETTY_FUNCTION__ in methods, too. 2011-01-13 16:34:25 +09:00
Bill Currie c4d19e6ebc Get __PRETTY_FUNCTION__ working for overloaded functions. 2011-01-13 16:22:27 +09:00
Bill Currie 0c9522b1ca Fix overloaded functions. 2011-01-13 16:21:31 +09:00
Bill Currie b4dd1b0a89 Add some diagnostic variables.
__PRETTY_FUNCTION__ __FUNCTION__ __LINE__ and __FILE__
2011-01-13 15:30:46 +09:00
Bill Currie fb8b3d1211 Rework the lexer and parser to use symbols instead of defs.
Currently parses the test program just fine, but code generation is very
very broken.
2011-01-13 14:58:16 +09:00
Bill Currie 8f71986306 Add symbol expressions (like def expressions).
They will eventually replace def expressions. Currently quite broken.
2011-01-13 14:54:24 +09:00
Bill Currie 008f4e1929 Don't return .return in advanced mode. 2011-01-13 14:50:25 +09:00
Bill Currie 5b8725ca66 Rewrite the symbol (table) management in light of actual usage. 2011-01-13 14:48:38 +09:00
Bill Currie ac14db7b1b Create a function to ease param list building.
This is especially useful for QuakePascal, but it will mean I'll be able to
get rid of the parameter reversals in Ruamoko later on.
2011-01-13 14:45:53 +09:00
Bill Currie 258c896e4d Create a function to build if/else blocks. 2011-01-13 14:33:16 +09:00
Bill Currie 638f4445cc More return code cleanup.
Don't use the true void return in traditional mode.
Prefer the true void return over "done" at the end of functions.
Don't emit the above if the last emitted statement is a return and there is
no label at the end of the function.
2011-01-13 00:46:46 +09:00
Bill Currie 3c9991364b Add a "void return" instruction.
I got fed up with always having to explicty return something.
2011-01-13 00:29:56 +09:00
Bill Currie 9ce9b70484 Add variadic functions.
Already extending QuakePascal, and many basics aren't there yet :P
2011-01-12 23:39:59 +09:00
Bill Currie 02b3dde83b Make QuakePascal programs runnable.
Generate a mini-main function (".main", to avoid namespace pollution) that
calls the function named by "program", and make qwaq check for ".main" as
well as "main". If both are present, ".main" will take priority.
2011-01-12 23:39:22 +09:00
Bill Currie 332b7da127 Minor header cleanup. 2011-01-12 23:34:15 +09:00
Bill Currie 96ba4605fa Fix the micro-optimization that avoided emitting x = x
The check was broken by alias defs. If a def is aliased, the alias must be
checked.
2011-01-12 23:33:51 +09:00
Bill Currie c787923c99 Forgot to remove that print_expr. 2011-01-11 12:11:54 +09:00
Bill Currie 08bf7e24de Produce nicer code for post-op.
The temp notice is still there for arrays (that's caused by issues in
constfold.c, not easily fixilbe), but it's harmless and correct (and nice)
code is much more important.
2011-01-11 12:07:48 +09:00
Bill Currie ad787ae98a Set the expression type to the correct value for addresses. 2011-01-11 12:06:40 +09:00
Bill Currie 21d7c78eb7 Allow deep copying of expression trees.
Certain expression types (eg labels) are created fresh.
2011-01-11 12:05:29 +09:00
Bill Currie c73ac30e3f Turns out decrementing the users was very very bad. 2011-01-11 10:56:36 +09:00
Bill Currie 4af5dad424 More math identities.
I forgot about 0 for multiplication and division. Detects division by zero.
2011-01-11 08:49:43 +09:00
Bill Currie 5b43fc1de3 Improve interaction between temps and const_folding.
Unfortunately, this seems to overdo the decrementing, so it could be
dangerous, but the ruamoko directory builds properly.
2011-01-11 08:47:52 +09:00
Bill Currie abe471110c Make inc/dec_users return the the expression.
Just for convenience.
2011-01-11 08:44:43 +09:00
Bill Currie 18ae178eaf Make new_vector_expr and new_quaternion_expr const-correct. 2011-01-11 08:43:34 +09:00
Bill Currie 4da2657bfe Fix most of the notice spam (hacky).
The implementation and declaration of OP_DONE disagree (not sure what to do
about it yet), so give it special treatment when emitting.
2011-01-11 08:07:04 +09:00
Bill Currie ded741430b Add some missing static declarations. 2011-01-10 13:23:39 +09:00
Bill Currie 5f70e27613 Quaternions use quaternion_val, not vector_val :P 2011-01-10 13:23:12 +09:00
Bill Currie cd38bd71fa Swap the order of scale and base for calculating the array index.
fold_constants doesn't like dags very much, but it can do the right thing
if the expressions are in the right order. This is merely a workaround
until I get to work on the code generator itself.
2011-01-10 12:26:11 +09:00
Bill Currie 5864c198cc Property list tests are working. 2011-01-10 12:26:11 +09:00
Bill Currie d327c860cb Get messages working again. 2011-01-10 12:26:11 +09:00
Bill Currie cb0bc7229a Resurect the debugging messages in rua_obj.c
Yet another debug flag: SYS_RUA_OBJ
2011-01-10 12:26:10 +09:00
Bill Currie aac8185e4e Print some addresses in hex. 2011-01-10 12:25:31 +09:00
Bill Currie 6ebee4ad0e Get the type of Method right.
It's a direct structure rather than a pointer.
2011-01-10 12:25:31 +09:00
Bill Currie ba27db6b93 Use some math identities to eliminate operations on non-constants. 2011-01-10 12:25:31 +09:00
Bill Currie 75ec6bf244 Clean out some unnecessary types from the progs engine and clean up the mess.
This is a nasty commit, sorry, but 99% of the commit is interdependent.
2011-01-10 12:25:31 +09:00
Bill Currie c69ac1f56f Don't segfault when build_builtin_function detects an error. 2011-01-10 12:25:31 +09:00
Bill Currie 806d9110a2 Support both (* *) and // style comments. 2011-01-10 12:25:31 +09:00
Bill Currie a17e73c863 Generate code.
It's now time to work on the revamp of the symbols, trees, etc.
2011-01-10 12:25:31 +09:00
Bill Currie e34f7caeb0 Use op instead of integer_val for ADDOP etc. 2011-01-10 12:25:31 +09:00
Bill Currie edaa6235e7 Get functions/procedures emitted.
No actual code is emitted, though.
2011-01-10 12:25:31 +09:00
Bill Currie 74016573b4 Need frame grabbing after all. 2011-01-10 12:25:31 +09:00
Bill Currie 129a36064f Fix a typo that broke procedure declarations. 2011-01-10 12:25:31 +09:00
Bill Currie 7971b0868e Break out the begin_function code into its own function. 2011-01-10 12:25:31 +09:00
Bill Currie c5d0acf0fa Allow arrays to have ranges (not fully implmented) 2011-01-10 12:25:31 +09:00
Bill Currie 25c36a51a8 -f and -F were reversed in the usage. 2011-01-10 12:25:31 +09:00
Bill Currie fed82466cc The first stages of Quake-Pascal.
At present, this parses a subset of the pascal language with a few type
extensions. There is already work on the type system.
2011-01-10 12:25:31 +09:00
Bill Currie ae4ca52661 Make function.h more independent. 2011-01-10 12:25:31 +09:00
Bill Currie 66ac56063f Break out the frame macro code from qc-lex.l 2011-01-10 12:25:31 +09:00
Bill Currie a09f02db1a Break out the debug and string functions from qc-lex.l. 2011-01-10 12:25:30 +09:00
Bill Currie 695f71eeb6 Get clost to the look I wanted for symtab_flat_copy's graph. 2011-01-10 12:25:30 +09:00
Bill Currie 782a4c9a8d New symbol table code. 2011-01-10 12:25:30 +09:00
Jeff Teunissen dfbbda37af New tool: qflmp
Stupid little lump tool, converts from lmp to pcx and back.

qflmp -h for help.
2011-01-09 04:33:51 -05:00
Bill Currie fbdbcfada4 Remove deprecated @argc and @argv 2011-01-05 13:10:57 +09:00
Bill Currie a27ea057c4 Add a test for calling class methods. 2011-01-03 18:11:46 +09:00
Bill Currie 02f78e46f8 More expression docs. 2011-01-03 16:25:59 +09:00
Bill Currie 5627e43465 Use the method's selector rather than its def name in error messages. 2011-01-03 16:25:29 +09:00
Bill Currie a1f36a9944 Make new_function take a def rather than a name.
Moves into new_function some code that should have been there in the first
place.
2011-01-03 16:25:29 +09:00
Bill Currie 4c69a97ac7 Allow normal declarations within a class implementation.
I had always been under the assumption that such was illegal in
Objective-C, but after working on Forge, I now know otherwise.
2011-01-03 16:25:29 +09:00
Bill Currie dc5bafb8fb Minimal error recovery.
No more bailing on the first syntax error. While the recovery is not
perfect (things can get right twisted), qfcc will now continue parsing
after a syntax error.
2011-01-03 16:25:29 +09:00
Bill Currie a4635d79e8 Slightly more informative error locations.
Inside a class or protocol definition is not "at top level" ;)
2011-01-03 16:25:29 +09:00
Bill Currie 530e8fae34 Rework class_type_t to be more useful.
This allows current_class to refer to procols as well (for error
reporting).
2011-01-03 16:25:29 +09:00
Bill Currie f738ef5dba Remove redundant RETURN statement rule.
The same effect can be achieved with one rule using opt_expr.
2011-01-03 16:19:28 +09:00
Bill Currie 58042719e5 A little more documentation for expressions. 2011-01-03 16:19:28 +09:00
Bill Currie 7946fec523 More cString cleanups.
I don't know that fileSystemRepresentation is any better than cString for
general usage (due to wchar on windows).
2010-12-28 07:42:08 +09:00
Bill Currie d29e8deb0a Use Qprintf for writing maps, and fileSystemRepresentation to get the path. 2010-12-27 23:18:43 +09:00
Bill Currie 97e8ab7f3a A bunch more NSString and NSFileManager usage.
It does make for cleaner could, though it would have been nice if NSData
was null terminated :P
2010-12-26 22:33:04 +09:00
Bill Currie 8e13a8327d Use NSFileManager methods instead of access().
This even fixes a bug where an inaccessible bspSound was being opened.
2010-12-26 21:07:55 +09:00
Bill Currie f105fbd6a0 Use NS* classes for QUAKED directory scanning.
The scanning of actual files is still done using normal C strings, but now
everything up to (but not including) opening the file is handled by *step.
2010-12-26 20:45:01 +09:00
Bill Currie 232c67640c Get the QUAKED text for nullclass right.
? is not a character that's lexed out by the script class.
This fixes the segfault when loading a map when no entities are defined
(ie, the mod's source code could not be found for QUAKED).
2010-12-26 19:06:39 +09:00
Jeff Teunissen 8653f9d9a7 Add a man page for zpak
It's lame, but so is zpak :)
2010-12-24 16:23:52 -05:00
Bill Currie 526f132517 Minor tweaks. 2010-12-24 20:08:24 +09:00
Bill Currie 22072ee606 Update for the new qfcc headers/libs location. 2010-12-24 20:07:40 +09:00
Bill Currie 1a767849ab Sort the options in the switch.
Should make finding them a little easier.
2010-12-24 17:35:33 +09:00
Bill Currie d6b3d4891a Finally, help output for qfprogs.
Nothing great, but better than nothing.
2010-12-24 17:33:57 +09:00
Bill Currie f4d8b82115 Rearrange the options into alpha order. 2010-12-24 17:08:48 +09:00
Bill Currie 51b98ee758 Correct some errors. 2010-12-24 11:07:47 +09:00
Bill Currie 33e9fbba32 Win32 packaging improvements. 2010-12-24 10:41:09 +09:00
Bill Currie a57717e2ab Update my release script. 2010-12-24 09:51:07 +09:00
Bill Currie 28740bb57f Add unsigned integer constant support. 2010-12-23 19:32:28 +09:00
Bill Currie 7934e29473 Fix up my big build script. 2010-12-23 16:51:02 +09:00
Bill Currie 32f7cd8b22 Get HTTP support (libcurl) working with mingw. 2010-12-23 13:18:43 +09:00
Bill Currie 2229c7557d Update cross-build scripts.
They're hard-coded for my current setup, but easy to fix.
2010-12-23 11:45:08 +09:00
Bill Currie de04e1b602 Lots of win32 (mingw cross) build fixes.
HTTP (curl) support is missing, but everything else builds.
2010-12-23 11:40:16 +09:00
Bill Currie 6c631c6d5d Start documenting qfcc. 2010-12-19 11:35:18 +09:00
Bill Currie 52e844ee48 Produce slightly better v6 modulo code for complex inputs.
I'm having problems with temp defs, but I imagine this code is rarely used
so I won't worry about it for now. It will, however, make a good test case
for when I rework emit.c after I do some reading.
2010-12-19 11:23:33 +09:00
Bill Currie b90833d86f v6 modulo test 2010-12-19 11:19:23 +09:00
Bill Currie fa08e4afb7 Print users info when dumping statements. 2010-12-19 11:16:04 +09:00
Bill Currie f5706f9c44 Make control of expression dumping less of a hassle. 2010-12-19 11:15:13 +09:00
Bill Currie d981968208 v6 modulo implementation now produces good code.
At least for simple inputs, anyway. That needs to be tested next.
2010-12-18 22:21:55 +09:00
Bill Currie 00e50c0ad3 Rewrite the v6 modulo implementation.
While trying to understand bind expressions, I discovered that the v6
modulo code was incorrect. This version is correct but uses one too many
temps. That's next.
2010-12-18 22:21:55 +09:00
Bill Currie 8197d34eda Objective-C warnings documentation from gcc. 2010-12-16 20:12:24 +09:00
Bill Currie 699799bfc8 Don't warn when adding a new method to an implementation.
Methods defined in the implementation but not declared in the interface are
just fine.
2010-12-16 20:04:08 +09:00
Bill Currie eace5b3c81 Get message checking working properly. 2010-12-16 16:41:16 +09:00
Bill Currie a87ba3d0ea Fix qwaq for the recent Array(Private) tweaks. 2010-12-13 19:10:05 +09:00
Bill Currie 4481ba9b0d Allow explicit references to classes and categories.
Use "@reference ClassName;" or "@reference ClassName(CategoryName);" to
create a refence to the class or category, forcing the defining object file
to be linked into the program when the object file is part of a library.
2010-12-12 20:27:56 +09:00
Bill Currie 2c84ae4898 Don't let casting in constfold increment users.
This fixes Deek's temp notice. No new notices have shown up, so this should
be the correct fix. The constant folding code no longer calls cast_expr
directly, but rather uses an internal wrapper that decrements users after
cast_expr increments it, resulting in a no-op.
2010-12-12 15:37:26 +09:00
Bill Currie d470094a55 Flip the nodes when flipping the plane. 2010-12-10 18:13:48 +09:00
Bill Currie 9ba70884c5 Prefer positive Z axis for 45 degree canonical planes. 2010-12-10 17:17:30 +09:00
Bill Currie ba2a5838fd Normalize the clip plane before adding it to the bsp. 2010-12-10 17:17:30 +09:00
Bill Currie a0828ddd06 Clean up bsp limits.
Delete all bogus bsp limits, fixing the code that depended on them.
Document those limits that are dictated by the format.
2010-12-07 17:58:09 +09:00
Bill Currie 478ef21de0 Add some view opacity. 2010-11-28 15:31:40 +09:00
Bill Currie 83dc8c2a7a Remove some unused files. 2010-11-28 15:31:40 +09:00
Bill Currie 0e8d6d896f Do a bit of comment cleanup. 2010-11-28 15:31:40 +09:00
Bill Currie ff41feb76e Allow entity copying too. 2010-11-28 15:31:40 +09:00
Bill Currie cb970bddce Can now copy brushes.
Implement SetBrush's copyWithZone:
2010-11-28 15:31:40 +09:00
Jeff Teunissen 74d959ec64 Cope gracefully with wadfiles we can't handle
This is a weird little diff. We're doing a lot of gymnastics here so that
we don't have to crash (killing any loaded unsaved work!) when we find a
wadfile we don't know how to deal with.
2010-11-28 15:31:40 +09:00
Bill Currie 6702f04b46 Fix key resetting.
Make sure we don't add a new key-pair when the key already exists, and if
the existing value has the same pointer as the "new" value, do nothing.
2010-11-28 15:31:40 +09:00
Bill Currie ff94a0f76a Can now select textures. 2010-11-28 15:31:39 +09:00
Jeff Teunissen 47117f1762 return the actual string
Oops. I returned a text field instead of the string in it. :)
2010-11-28 15:31:39 +09:00
Jeff Teunissen 877067de61 Export the base directory of the open project
Project -baseDirectoryPath returns the absolute path to the directory from
which the .qpr file was loaded.
2010-11-28 15:31:39 +09:00
Bill Currie 22885a48ad Correctly initialize the path variables.
Use the current project file, not the default.
2010-11-28 15:31:39 +09:00
Jeff Teunissen 0d0e7bfe18 TexturePalette.m: microscopic update
remove a bogus comment, clarify a printf call, add parens around a ternary
test.
2010-11-28 15:31:39 +09:00
Jeff Teunissen ba508fa3e0 TexturePalette: Prevent NULL dereference
Keep the app from crashing on a wad that doesn't have any palette at all.
2010-11-28 15:31:39 +09:00
Bill Currie d75f5f3f79 Fix brush selection.
The great cleanup caused a few vital returns to disappear (they probably
went to the same place a lot of my lego did).
2010-11-28 15:31:39 +09:00
Bill Currie 946a06b264 Don't crash if the palette entry is not first.
Instead, swap the palette entry and the first entry (only in memory).
2010-11-28 15:31:39 +09:00
Bill Currie 78a816dbdf Correct miptex byte-count scaling factor. 2010-11-28 15:31:39 +09:00
Bill Currie 1928780af6 Support Quests' map format.
This is mostly because I have a few maps in this format.
2010-11-28 15:31:39 +09:00
Bill Currie ae1d5245ad Got the value/key backwards. 2010-11-28 15:31:39 +09:00
Bill Currie c2644699a4 Even more conversions to NSString 2010-11-28 15:31:39 +09:00
Bill Currie 12d79ba28d More conversions to NSString 2010-11-28 15:31:39 +09:00
Bill Currie fd000b880d Do a lot of conversions to NSString. 2010-11-28 15:31:38 +09:00
Bill Currie 2ac2f5fab5 Change path_projectinfo to NSString. 2010-11-28 15:31:38 +09:00
Bill Currie 1180a54d67 It seems I forgot to commit this with the plist changes. 2010-11-28 15:31:38 +09:00
Bill Currie b28ba46448 Fix wad loading when loading the map.
This broke with the fix for the entity inspector.
2010-11-28 15:31:38 +09:00
Bill Currie da2c87f964 Use QF's property lists for the project file. 2010-11-28 15:31:38 +09:00
Bill Currie 24fad619d1 First step in cleaning up Dict. 2010-11-28 15:31:38 +09:00
Bill Currie 5c0fb3ecd3 Correct an error message. 2010-11-28 15:31:38 +09:00
Bill Currie 6c96402403 Get the button icons set properly.
There are still issues with the way gorm does things, but this works for
now.
2010-11-28 15:31:38 +09:00
Jeff Teunissen 602564075d install images into Resources
Install the button icons into the app when we make it.
2010-11-28 15:31:38 +09:00
Jeff Teunissen edf5f6e018 find $GNUSTEP_MAKEFILES
Enable locating the GNUstep makefiles using the various schemes available
(in order of reliability), eventually reaching a hardcoded default.
2010-11-28 15:31:38 +09:00
Jeff Teunissen 0e5cd14829 tactical whitespace bomb
Add return-type information to all methods, split up lines properly where
I could find them, and ran the whole thing through uncrustify. Looks purty
now. :)
2010-11-28 15:31:38 +09:00
Jeff Teunissen a4eec40843 Remove -read:/-write from Storage
Apparently GS doesn't do TypedStream any more...
2010-11-28 15:31:38 +09:00
Jeff Teunissen cdc79ae6f8 Add type information, don't return self most of the time
Start "modernizing" the code base; old code is based heavily in the
Smalltalk style, where everything that doesn't return a different object
returns self. This can be useful, but it isn't what is usually done these
days. Also, add type information (which didn't exist in "the old days" --
an object was an "id", not a "Foo *") to help with debugging.
2010-11-28 15:31:38 +09:00
Jeff Teunissen 7dc5d26480 SetBrush: signed/unsigned fix 2010-11-28 15:31:37 +09:00
Jeff Teunissen dbab1545e5 Comment an #if 0
Looks like John Carmack was going to implement "reference" .qpr directories,
where they would contain a reference to the "real" base path, but never got
it finished. Make a note in the source to explain the "dead" code.
2010-11-28 15:31:37 +09:00
Jeff Teunissen 4d63d20663 signed/unsigned and some const-correctness 2010-11-28 15:31:37 +09:00
Bill Currie 646422d683 Get the timing right when setting the wad file in worldspawn. 2010-11-28 15:31:37 +09:00
Bill Currie 939605309f Do error checking when trying to load a wad file. 2010-11-28 15:31:37 +09:00
Bill Currie 997df6c310 Char buffer audit.
Get rid of most static char buffers. The few remaining are either in file
structs or messy code that needs further analysis.
2010-11-28 15:31:37 +09:00
Bill Currie 1b7be81f11 Do a const-correct run. 2010-11-28 15:31:37 +09:00
Bill Currie 62c73b300e Fix the tangled mess of entity connections.
What was the person who wrote valueForQKey thinking? Make the function
const-correct and bubble the changes through the code.
2010-11-28 15:31:37 +09:00
Bill Currie 3574668fe3 Connect the region filtering switch.
Region filtering now seems to work. Also added a tool tip.
2010-11-28 15:31:37 +09:00
Bill Currie d8773fddb1 Get the entity flags switches into the right initial stage. 2010-11-28 15:31:37 +09:00
Bill Currie 68190bd431 Echo the output to stdout as well as the output box. 2010-11-28 15:31:37 +09:00
Bill Currie 1aae3c8174 Get the inspector button displaying properly. 2010-11-28 15:31:37 +09:00
Bill Currie bb3ea99806 Fix texture names. 2010-11-28 15:31:36 +09:00
Bill Currie dcc4187a8c Get the timing write for when to restore the rects. 2010-11-28 15:31:36 +09:00
Bill Currie 9cc66c3de1 A bit more code cleanup. 2010-11-28 15:31:36 +09:00
Bill Currie 1e6cdb4bb8 Replace PS*instance.
It's a little flakey (doesn't always do the right thing), but it's a good
start. I'd like to do much smaller rectangles, and get the timing right.
2010-11-28 15:31:36 +09:00
Bill Currie 73a82342db Get the inspector button mostly working thanks to Deek's help. 2010-11-28 15:31:36 +09:00
Bill Currie 7c3e6b8bdc Rectirect Sys_Printf's output to the command output box. 2010-11-28 15:31:36 +09:00
Bill Currie 3a6e5ea179 Fix a string comparision mistake.
This snuck in with the parser changes.
2010-11-28 15:31:36 +09:00
Bill Currie 4ed7290d9f Fix an uninitizized variable. 2010-11-28 15:31:36 +09:00
Bill Currie cfa13f1caa Work around a method type mismatch in GNUstep. 2010-11-28 15:31:36 +09:00
Bill Currie c1fac2cc8a Hopefully fix the flush control and second screen placement. 2010-11-28 15:31:36 +09:00
Bill Currie ec98bb3b93 Get help working (for what it is worth). 2010-11-28 15:31:36 +09:00
Bill Currie 4b1202d6e6 Remove debugging code. 2010-11-28 15:31:36 +09:00
Bill Currie 73b89ba0b8 Do not use PS* functions. 2010-11-28 15:31:36 +09:00
Bill Currie 4dd0bf5804 Get TextureView working. 2010-11-28 15:31:35 +09:00
Bill Currie 950af620bc Get the Z checker working. 2010-11-28 15:31:35 +09:00
Bill Currie 6509a24a54 KeypairView now seems to work properly. 2010-11-28 15:31:35 +09:00
Bill Currie c0236955f2 Don't change the font size when scaling the views.
This keeps the displayed size of the text constant (text size is independent of bounds/frame scaling)
2010-11-28 15:31:35 +09:00
Bill Currie 6be1f516f6 Get the keyboard controls working. 2010-11-28 15:31:35 +09:00
Bill Currie 27fdf21120 Modernize the camera eye glyph drawing. 2010-11-28 15:31:35 +09:00
Bill Currie 91751d9fbb Get scaling working in the Z view as well. 2010-11-28 15:31:35 +09:00
Bill Currie a0201728d9 Finally have the scaling working perfectly(?).
I had to hack around problems in GNUstep's bounds implementation (I don't
know if they're bugs or design limitations), but the fix was just a matter
of making sure the bounds matrix was correct: force the scale to 1 before
adjusting bounds, and then make sure the translation is scaled afterwards.
2010-11-28 15:31:35 +09:00
Bill Currie e2f8490f9a Get scale changes halfway working.
Translation is still wrong, but changing scale to (eg) 200% and back to
100% works correctly.
2010-11-28 15:31:35 +09:00
Bill Currie 7f5a68023b slow progress in getting things to work 2010-11-28 15:31:35 +09:00
Bill Currie a229f20525 Get textures sortof displaying. 2010-11-28 15:31:35 +09:00
Bill Currie e15b963279 Correct alert panel handling. 2010-11-28 15:31:35 +09:00
Bill Currie 0d5bd775cb Get the textureView connection right. 2010-11-28 15:31:35 +09:00
Bill Currie 752ff7d879 Don't segfault when unable to open a file. 2010-11-28 15:31:35 +09:00
Bill Currie 43d2d9645d Get the sizes of the inspectors reasonable.
The inspector popup button is funky (need to select the desirned inspector
twice), but it can be made to work.
2010-11-28 15:31:35 +09:00
Bill Currie 0de8e3806d Get the inspectors showing.
Still can't change them via the pop-up menu, though.
2010-11-28 15:31:34 +09:00
Bill Currie 3193374257 Accidently commited a failed experiment. 2010-11-28 15:31:34 +09:00
Bill Currie 7d5af7c341 Finish the gorm file, for certain values of finished. 2010-11-28 15:31:34 +09:00
Bill Currie b215a5e856 Camera view seems to work moderately well. 2010-11-28 15:31:34 +09:00
Bill Currie f8ce05d862 Entity loading from maps seems to work. 2010-11-28 15:31:34 +09:00
Bill Currie f6ebcd45ac Use QF's wadfile support.
Still fragile, but it can load wad files.
2010-11-28 15:31:34 +09:00
Bill Currie 972e98ec09 Get QUAKED comments working. 2010-11-28 15:31:34 +09:00
Bill Currie c820735dd3 Get progs source scanning working.
Of course, this is if the environment is set up just right, but it's
another step towards something to fix.
2010-11-28 15:31:34 +09:00
Bill Currie a2ab1c81ce A little more progress: loading a map does not seg. 2010-11-28 15:31:34 +09:00
Bill Currie 0e4259361c Get map loading sort-of working.
Segfaults, but the Map class can now be instantiated.
2010-11-28 15:31:34 +09:00
Bill Currie 4fdc34ea86 Get some screen updates happening. 2010-11-28 15:31:34 +09:00
Jeff Teunissen ef7492f5cf correct fix for ForgeBundle protocol issue 2010-11-28 15:31:33 +09:00
Jeff Teunissen 3dcfd69b50 Update makefile's add'l install dirs
This rule would create the raw path /Library/Forge three times...fix it to
create Forge dirs with the new scheme.
2010-11-28 15:31:33 +09:00
Bill Currie e959a6ee3c Add \n to Sys_Printf calls. 2010-11-28 15:31:33 +09:00
Bill Currie 9ffcc8658d Make the menus and do some connections. 2010-11-28 15:31:33 +09:00
Bill Currie 7f41d1529b Make it run.
Fix some bad memory handling in XYView and ZView, and remove the unset
CustomView.
2010-11-28 15:31:33 +09:00
Bill Currie 44942df87f Fixes for building with QF. 2010-11-28 15:31:33 +09:00
Bill Currie 9ec5310ed7 Again, whitespace. 2010-11-28 15:31:33 +09:00
Bill Currie 6500333e91 For now, build an app rather than a bundle. 2010-11-28 15:31:33 +09:00
Bill Currie f25754813e Fix some bitrot.
I'm not happy with the fix in Controller.m, but I'm not sure what the best
way to fix it is.
2010-11-28 15:31:33 +09:00
Bill Currie 81a3eaf93e Initial Gorm file for MapEdit. 2010-11-28 15:31:32 +09:00
Bill Currie b5f5ad6ce2 Whitespace. 2010-11-28 15:31:32 +09:00
Bill Currie 7ebb7c503b Remove unused file. 2010-11-28 15:31:32 +09:00
Bill Currie e93bb3fb69 Remove some redundant files.
Use the functions provided by QuakeForge.
2010-11-28 15:31:31 +09:00
Bill Currie e84574400d Can't use UserPath, so remove these. 2010-11-28 15:31:31 +09:00
Bill Currie 6e3df2c68d Possibly get preferences working. 2010-11-28 15:31:31 +09:00
Bill Currie 3e3d8cc9cd clean up some XXXs 2010-11-28 15:31:31 +09:00
Bill Currie c1e2d4c17a And the header files. 2010-11-28 15:31:31 +09:00
Bill Currie d23300d58b Pass .m files through indent.
The result isn't perfect, but it cleans up the whitespace and makes the
code more consistent with the rest of the project.
2010-11-28 15:31:31 +09:00
Bill Currie d3a12ee727 Finally, everything does compile.
However, it still won't work (no gorm, commented code, ...).

Borrow an old implementation of the Storage class until I figure out just
what it's being used for.
2010-11-28 15:31:31 +09:00
Bill Currie ddc493d657 Add the rest of the files which I know to build. 2010-11-28 15:31:31 +09:00
Bill Currie 767d871fb8 Make MapEdit (QuakeEd) compile.
It won't work yet as there's no gorm file and there's code that has been
commented out, but it finally compiles.
2010-11-28 15:31:31 +09:00
Bill Currie ac88c86dd3 Scripts now treat {}()': as single character tokens. 2010-11-28 15:31:30 +09:00
Bill Currie 032f16d1b3 Some compile fixes.
Not enough, but covers Object->NSObject and header file protection.
2010-11-28 15:31:30 +09:00
Bill Currie 023d3c89ec Source formatting. 2010-11-24 17:01:18 +09:00
Bill Currie 4518e6af91 First stab at implementing autorelease.
It's probably nowhere near right, but probably ok for now (I need to study
the GNUStep code). I'm unhappy with the menu code hook, but it will have
to do for now.
2010-11-24 17:01:18 +09:00
Bill Currie 5fc4ef63f6 Rewrite ruamoko plist support to use handles.
The plist code was written long before I thought of resource handles, and
then it was forgotten. This is much nicer and safer than storing C
pointers in progs memory space (*shudder*).
2010-11-24 17:01:18 +09:00
Bill Currie 9a3f4d5a01 Handle method parameters that use incomplete types.
Compare the method's type pointers rather than the type strings as the pointer
won't change with the struct is completed.
2010-11-24 17:01:18 +09:00
Bill Currie e28ee0378f Gracefully handle returning NIL though a bad type. 2010-11-24 17:01:18 +09:00
Bill Currie 67beaf4487 Nil is a constant, so allow it in global initializers. 2010-11-24 17:01:18 +09:00
Bill Currie 799d46f83d Check for incomplete types and better param/return size checking. 2010-11-24 17:01:17 +09:00
Bill Currie a623fb53a7 Proper support for empty structs and unions.
They now have a single private, void, unnamed member, resulting in a size of
1 word. This makes empty structs useful for typed opaque handles.
2010-11-24 17:01:17 +09:00
Bill Currie e5e560cbaf Ensure struct params are small enough to fit in the param slots. 2010-11-24 17:01:17 +09:00
Bill Currie 49ea878ad9 Slightly more informative progress.
Display per-thread current portal number. Will get messy if there are more threads than the screen width can handle.
2010-11-21 09:56:31 +09:00
Bill Currie 2ef291bf46 Make mdl.py work on 64 bit machines. 2010-10-18 17:53:04 +09:00
Bill Currie 0c4b2f9e19 Add the default extension when no output file is specified. 2010-10-16 22:09:18 +09:00
Bill Currie 98fa427456 Add the extract-hull option to the usage output. 2010-10-16 16:16:58 +09:00
Bill Currie 985c27b52d Some more brush documentation. 2010-10-13 20:52:08 +09:00
Bill Currie ef7958d680 Lots of const correctness. 2010-10-13 20:52:08 +09:00
Bill Currie f4bff1d3b0 Make some code more readable. 2010-10-13 20:52:08 +09:00
Bill Currie 16e067c8cb More portal documentation. 2010-10-13 20:52:08 +09:00
Bill Currie 538956c389 Make parts of CutNodePortals_r() easier to read. 2010-10-13 20:52:08 +09:00
Bill Currie 08c6a185ad Documentation for writebsp. 2010-10-13 20:52:08 +09:00
Bill Currie d90a630b04 Call AddAnimatingTextures only once rather than for every wad file. 2010-10-13 20:52:08 +09:00
Bill Currie fcd1897421 Create the qfbsp doxygen modules.
Also, make doxygen extract static functions as well, so qfbsp's docs can be
more complete.
2010-10-13 20:52:08 +09:00
Bill Currie bfc6c9e798 Document the smart-leak function. 2010-10-13 20:52:07 +09:00
Bill Currie 93517d40d8 Finish the port of smart leak files.
This comes from the OpenQuartz version of qbsp.
2010-10-13 20:52:07 +09:00
Bill Currie 142defe9c0 Parameter consistency fixes.
Make the params for FreeWinding and CopyWinding consistent with those in
qfbsp. This fixes some doxygen warnings while I think about how best to
handle the duplicate code.
2010-10-13 20:52:07 +09:00
Bill Currie ad8b08238d Make some vector code easier to read. 2010-10-13 20:52:07 +09:00
Bill Currie 44776f111f Documentation for winding. 2010-10-13 20:52:07 +09:00
Bill Currie a8bd522ca1 Documentation for tjunc. 2010-10-13 20:52:07 +09:00
Bill Currie f758cacc69 Make FindEdge easier to read. 2010-10-13 20:52:07 +09:00
Bill Currie fc0e0f4665 Documentation for surfaces. 2010-10-13 20:52:07 +09:00
Bill Currie f3e7a7ca89 Documentation for solidbsp. 2010-10-13 20:52:07 +09:00
Bill Currie 4b1b838f87 More braces and whitespace. 2010-10-13 20:52:07 +09:00
Bill Currie 313677ee96 Add some braces and a bit of whitespace 2010-10-13 20:52:07 +09:00
Bill Currie 69189600a4 Some docs for bsp5.h 2010-10-13 20:52:07 +09:00
Bill Currie 68dda63de5 Documentation for region. 2010-10-13 20:52:07 +09:00
Bill Currie 00b635236d Document the readbsp code. 2010-10-13 20:52:07 +09:00
Bill Currie 34d60539de Document the portals code. 2010-10-13 20:52:06 +09:00
Bill Currie cc098fa720 Documentation for outside. 2010-10-13 20:52:06 +09:00
Bill Currie a92bd6dec1 Document the merge code 2010-10-13 20:52:06 +09:00
Bill Currie 6ce7c5040b Make NewFaceFromFace const-correct 2010-10-13 20:52:06 +09:00
Bill Currie 6c89883c8f Lots of csg4 documentation 2010-10-13 20:52:06 +09:00
Bill Currie 17e5813a51 Make a block of code a little easier to read. 2010-10-13 20:52:06 +09:00
Bill Currie a5c96cb825 More documentation and move some functions. 2010-10-13 20:52:06 +09:00
Bill Currie 2e6eb419ca Some documentation for the map parser. 2010-10-13 20:52:06 +09:00
Bill Currie 5cf5c1e227 lots of whitespace 2010-10-13 20:52:06 +09:00
Bill Currie 5c0a55d818 Add some documentation for the brush code. 2010-10-13 20:52:06 +09:00
Bill Currie 9a4c9c506f Fix bbox calculation for rotating brush entities. 2010-10-13 20:52:06 +09:00
Bill Currie b91568bbdd More non-canonical checks in PlaneTypeForNormal. 2010-10-13 20:52:06 +09:00
Bill Currie c9eb679c41 Make PlaneTypeForNormal const-correct. 2010-10-13 20:52:06 +09:00
Bill Currie 7fca21837a fix some errors found by valgrind 2010-10-13 20:52:05 +09:00
Bill Currie 56fb4d9a22 allow safe bsp freeing
any memory the bsp thinks it does not own will not be freed
2010-10-13 20:52:05 +09:00
Bill Currie 99d8ea22b4 fix uninitialized data
In the process of testing the changes to WriteBSPFile, it was found that
the data being supplied to it contained uninitialized values.
2010-10-13 20:52:05 +09:00
Bill Currie f4042c5b91 Make the bsp disk data structures type size independent.
However, this assumes float is always 32 bits.

Also use size_t for the *size fields in bsp_t and clean up the mess.
2010-10-13 20:52:05 +09:00
Bill Currie e9bd9a4baa Move QFS_CreatePath() to Sys_CreatePath(). 2010-08-25 13:52:24 +09:00
Bill Currie a51e888a1b Nuke MAX_OSPATH and clean up the mess. 2010-08-25 13:31:08 +09:00
Bill Currie 06cbb941f1 "make dist" fixes
Since we're using git now, having a rule to make ChangeLog is reasonable.

Also, forgot the remove mention of qfcc.lsm.in when I nuked the file.
2010-08-21 13:09:53 +09:00
Bill Currie 1442273a8f more opaque correctness 2010-08-20 12:58:37 +09:00
Bill Currie 669771681a split up and modernize configure.ac
Most of the guts of configure.ac have been moved to config.d and are then
brought in by m4_include. This will make maintaining configure.ac much easier.

Also drop use of PROGRAM and VERSION, using PACKAGE_NAME, PACKAGE_VERSION, and
on occasion, PACKAGE_STRING instead, and clean out some old files we no longer
need.
2010-08-19 15:01:43 +09:00
Bill Currie a703956553 split up most of bsp5.h and get things compiling again 2010-08-18 17:52:13 +09:00
Bill Currie d045045693 get the grouping right 2010-08-11 23:42:14 +00:00
Bill Currie f04bc64ef1 clean up a bunch of doxygen warnings 2010-08-11 23:41:30 +00:00
Bill Currie 0dfff8fd58 ignore stuff 2010-08-07 10:42:09 +00:00
Bill Currie 7ef81cae31 and the rest of the changes before actually working on the new parser 2010-08-05 03:39:26 +00:00
Bill Currie 9a4258b5c5 rename "map" to "map_script" in anticipation of a better map parser 2010-08-05 03:30:13 +00:00
Bill Currie 17d84613a9 found a test file lurking around 2010-08-05 02:36:51 +00:00
Bill Currie 51a32f4f87 minor comment about scoping in traditional mode 2010-02-22 13:44:52 +00:00
Bill Currie fac98536f0 make sure def->space points to the space the def's location is allocated from to ensure that freeing the location works properly (fixes the bogus address triggered by prozaccoop: thanks, phrosty) 2010-02-22 13:11:41 +00:00
Bill Currie 56d01ce267 found an uncontrollable warning 2010-02-20 12:01:49 +00:00
Bill Currie 7b9a682942 Make qfpreqcc a little noisier when qfcc can't be run. 2010-01-16 02:05:05 +00:00
Bill Currie 997102fea8 audit the usage of "only"
There are still a few iffy places (notably around certain prepositions), but
the relevant sentences are now much easier to read.
2010-01-13 06:42:26 +00:00
Bill Currie 01452ce5c8 no -P for qccx escapes 2010-01-13 06:35:04 +00:00
Bill Currie 8abb9a69aa remove support for an optional = in struct/union declarations 2010-01-13 06:34:32 +00:00
Bill Currie 21b3a87535 more todos 2010-01-13 06:33:31 +00:00
Bill Currie a18b01973e add some qfcc todos 2010-01-13 06:32:37 +00:00
Bill Currie 0d4a2938a2 forgot to check for errors 2010-01-13 06:32:10 +00:00
Bill Currie ae4fc3147d allow '*pointer' expressions 2010-01-13 06:31:41 +00:00
Bill Currie 22776f9ffd get double indirection working
do not try to optimize the output of the sub-dereference in a dereference
2010-01-13 06:31:06 +00:00
Bill Currie ad5459b51a mention the "no-" prefix in the code options section 2010-01-13 06:26:50 +00:00
Bill Currie ccb8faf6ef produce a warning for the likes of "x - x & y" 2010-01-13 06:26:18 +00:00
Bill Currie 40fefff847 fix incorrect users for temps resulting from casting the result of ?:
There are probably other situations, but I'll fix them as they show up.
2010-01-13 06:25:06 +00:00
Bill Currie d558444b77 make temp def problems a little easier to understand
o  set return_address whenever a temp def is requested, no only when it is
    actually created.
 o  make the notices about temp reference counting problems a little more
    readable and include the name of the temp
2010-01-13 06:24:29 +00:00
Bill Currie c2dcc20d2a allow (constant) expressions in array declarators 2010-01-13 06:23:32 +00:00
Bill Currie a6c504936c get \8 and \9 right 2010-01-13 06:23:02 +00:00
Bill Currie 401040ced0 document the gold digits 2010-01-13 06:22:33 +00:00
Bill Currie 07b61aa23f missed \0-9 for the gold numbers from qccx 2010-01-13 06:22:01 +00:00
Bill Currie 36fe939ea5 don't hang when processing \{N} escape sequences and fix a comment 2010-01-13 06:21:29 +00:00
Bill Currie 090527eaec silence some debug output 2010-01-13 06:20:22 +00:00
Bill Currie c3f47efb07 add --qccx-escapes to resolve the conflicts in escape sequences and document the escape sequences supported by qfcc. 2009-12-25 07:59:25 +00:00
Bill Currie c9484af217 don't seg when extracting conchars (it's not really a miptex) 2009-12-21 14:03:33 +00:00
Bill Currie dcf593291d fix for new bison (must be explicit with the type of $$ in mid-rule actions) 2009-12-21 05:53:00 +00:00
Bill Currie c8b7622e0e reduce the amount of memory wasted when generating the output file 2009-12-20 12:19:16 +00:00
Bill Currie c542138300 more not-really initialized data 2009-12-20 11:54:19 +00:00
Bill Currie 1dc4683961 ensure all instructions are fully initialized. 2009-12-20 11:09:58 +00:00
Bill Currie b14fcccd8f get qf compiling with gcc 4.4 2009-12-19 10:54:23 +00:00
Bill Currie e2355aa357 add --extract-hull which produces C structures for the clipping hull (currently only hull 0) 2009-03-18 03:28:34 +00:00
Bill Currie bfee029249 set current_func while building the init function to avoid issues with code expecting current_func to be set. 2008-08-01 22:55:10 +00:00
Bill Currie 9ac15436d9 More docs.
Enhance qfprogs qfo debugging.

Make sure functions marked as extern don't emit anything. Fixes the segfault
when building klik.
2008-08-01 13:54:24 +00:00
Bill Currie 23e3fc0cb8 document most of obj_file.h (and a few other doc tweaks) 2008-08-01 00:47:38 +00:00
Bill Currie fe95805d86 various gcc 4.3 fixes 2008-07-19 05:40:57 +00:00
Bill Currie 7c4a0725e1 clean out unused functions 2007-10-08 09:50:02 +00:00
Bill Currie ac99aaf0d3 use "#line N file" instead of "# N file" (seems to be more portable) 2007-09-16 07:03:12 +00:00
Bill Currie 3431fea56d Make sure initialized locals that are treated as constants don't get relocated. Fixes the airfist bug in prozac 2007-09-15 07:58:39 +00:00
Bill Currie 3e50aae01f "print" command for dumping values in the progs and add return type info to the debugging information 2007-09-15 07:47:31 +00:00
Bill Currie 01b71c40d2 fix some issues when using --advanced with v6only 2007-09-15 07:44:31 +00:00
Bill Currie ca0bbd909c correctly save and restore the parameters when calling +initialize. fixes the segfault in the qwaq test. 2007-06-09 13:44:06 +00:00
Bill Currie 4973a38cce speed up PF_VarString a little 2007-06-09 09:43:21 +00:00
Bill Currie ce2ba56c47 gcc 4.2 clean 2007-05-31 05:58:33 +00:00
Bill Currie 201f01b66c hopefully speed up byte swaps 2007-05-26 23:18:46 +00:00
Bill Currie 411d6517cb make duplicate macros behave the same as qcc in traditional mode (ie, bump the number anyway) 2007-05-15 07:51:04 +00:00
Bill Currie fee656eb68 warn about (and otherwise ignore) duplicate frame macros 2007-05-15 07:36:56 +00:00
Bill Currie 79fdf8db80 allow .imm symbols to be written in traditional mode 2007-05-15 07:25:47 +00:00
Bill Currie 680bc22697 better error reporting for redefines 2007-05-13 09:02:51 +00:00
Bill Currie a521a78adb catch more uninitialized variables 2007-05-13 08:39:07 +00:00
Bill Currie c81c074660 mark used constants as used 2007-05-13 08:20:19 +00:00
Bill Currie b356f1cbd4 remove some debug 2007-05-13 07:06:59 +00:00
Bill Currie f4d40650f5 make initialized locals behave similarly to qcc in traditional mode (note, they're not exactly the same) 2007-05-13 06:21:54 +00:00
Bill Currie 787a9bc182 forgot to increment the tail number (would have made a mess of maps with more than one duplicate of a texture name) 2007-05-09 10:08:35 +00:00
Bill Currie 2149aefe67 not so sure that one's needed 2007-05-08 03:24:49 +00:00
Bill Currie 5798c9d67a wasn't catching the precedence inversion in (x - x & y) even though it was caught for (x & y - x). 2007-05-08 02:54:50 +00:00
Bill Currie 0e78c3f6da make STORAGEX lower priority than UNARY so casts work 2007-05-07 23:44:45 +00:00
Bill Currie 9609fe8ca4 bloody hell 2007-05-07 15:04:06 +00:00
Bill Currie 839c00b97b back out the large packet/entity related patches. they've provent to be troublesome and it seems FTE has a better solution. 2007-05-07 14:58:53 +00:00
Bill Currie 8f365c4512 that wasn't supposed to go in 2007-05-07 12:18:54 +00:00
Bill Currie 72daa2fd2b add some sounds to the menus (not yet finished) 2007-05-07 12:17:12 +00:00
Bill Currie 6a019f1859 make sure all miptex entries have a unique name in the generated wad file so no textures get lost when extracting. 2007-05-07 02:06:03 +00:00
Bill Currie 243e816759 extract miptex "properly": lays out all 4 mip levels in the one image, rather than producing a mess :) 2007-05-07 01:04:47 +00:00
Bill Currie 7ba41632d9 snax's fixes to clean up most of the shift/reduce conflicts 2007-04-28 08:49:07 +00:00
Bill Currie 3deee307a8 check for uninitialized variables in return statements 2007-04-28 08:48:01 +00:00
Bill Currie a376e6f86d make control of progdefs.h generation saner 2007-04-28 05:40:22 +00:00
Bill Currie e8e2d3a6e5 make "local" optional 2007-04-28 05:20:47 +00:00
Bill Currie cfd71b87c4 clean up some warnings that I think I wasn't testing for 2007-04-28 05:17:55 +00:00
Bill Currie bf15d0cb6a docs on advanced/traditional 2007-04-12 10:53:38 +00:00
Bill Currie cfeb14fecf warn when local variables are redecalred in the same scope. This won't normally cause problems, but it can save a lot of grief when converting traditional quakec code. 2007-04-12 09:39:42 +00:00
Bill Currie 8c31f12d5c cover the two compilation modes 2007-04-12 07:42:22 +00:00
Bill Currie 93ee2e489b more vc2005 patches from phrosty 2007-04-11 22:03:36 +00:00
Bill Currie 8353bb5886 add a section on compilation modes. only half done, though 2007-04-11 15:10:00 +00:00
Bill Currie 7c938b3e91 follow some of the roff rules... 2007-04-11 12:04:53 +00:00
Bill Currie bac4096708 some doc improvements as pointed out by Hikaru and add --relocatable to the long options 2007-04-11 10:48:04 +00:00
Bill Currie 82aaa87b6b fast access to code, warning and notice help. 2007-04-10 14:53:44 +00:00
Bill Currie 992aa04994 Forgot to coorect the adjustment of the def's offset (yet I knew I was supposed to :P) 2007-04-10 14:03:34 +00:00
Bill Currie f48d41848a *sigh* 2007-04-10 13:11:42 +00:00
Bill Currie 15dc16ff64 put in stubs for help for -C, -W and -N 2007-04-10 13:10:53 +00:00
Bill Currie 2e6ecd97c8 d'oh 2007-04-10 13:01:45 +00:00
Bill Currie 52d178b3be Add a code generation option, "local-merging", to control qfcc's merging of local variable blocks into one block. Defaults to on for advanced mode and off for traditional. 2007-04-10 13:00:21 +00:00
Bill Currie 4c4281c512 because builtin functions now get their params dumped to the debug symbols, @va_list needs to be initialized. 2007-04-10 09:10:09 +00:00
Bill Currie 30744a555e find the other place def_func relocs get emitted. I keep forgetting about the .y file when grepping source :P 2007-04-10 07:40:03 +00:00
Bill Currie 3b7c83a96f uncomment some lines that shouldn't have been commented (doesn't fix the bug, though) 2007-04-09 14:32:47 +00:00
Bill Currie 845b5ab2e2 don't write alias defs to the qfo 2007-04-09 14:25:44 +00:00
Bill Currie 642bb0f810 don't create a reloc for an external function 2007-04-09 14:06:12 +00:00
Bill Currie e53e9944b6 spew a lot of guff about relocs 2007-04-09 13:33:59 +00:00
Bill Currie 3cd01223dd don't try to fix up function refs too early. fixes klik's segfault on firing 2007-04-09 08:56:23 +00:00
Bill Currie a9678f1c06 dump globals direct from qfo 2007-04-09 07:47:51 +00:00
Bill Currie 48fdd0cb26 record the params for builtins, too. 2007-04-09 06:16:34 +00:00
Bill Currie 9509d0fd5e make qfo files typesize safe 2007-04-07 12:35:03 +00:00
Bill Currie 2399e79ca0 open all files in binary mode. ^Z is evil :P 2007-04-07 10:24:34 +00:00
Bill Currie a6104bc0fc open input and output files in binary mode so ^Z doesn't bite us on windows 2007-04-07 10:15:17 +00:00
Bill Currie cbcd2030cf add a few more tests to break 2007-04-07 05:02:09 +00:00
Bill Currie 25bf40a71a finish the break overloading and add some more tests (really need to get these automated) 2007-04-07 04:58:27 +00:00
Bill Currie 124506fda2 Fix the access alignment bug on 64 bit archs. 2007-04-07 01:41:23 +00:00
Bill Currie c4d81cda19 use a proper charset instead of \w (too iffy on what it is) 2007-04-06 23:13:29 +00:00
Bill Currie 5baa6057cb give windows spawn*p* :P 2007-04-06 22:25:16 +00:00
Bill Currie 9e9318a3f1 use spawn instead of fork/exec/wait 2007-04-06 22:03:28 +00:00
Bill Currie 3f3450df2c fix a wrong name 2007-04-06 14:13:25 +00:00
Bill Currie f6924f35e5 report the line of the previous declaration of the function 2007-04-06 12:02:34 +00:00
Bill Currie a6388ee680 overload "break" and allow break to be used in --traditional 2007-04-06 11:46:21 +00:00
Bill Currie 6d21c50dee handle #line (hopefully) 2007-04-06 11:27:03 +00:00
Bill Currie 966c337bf5 use the def's declaration line rather than the function's when reporting auto-initialization 2007-04-06 11:05:52 +00:00
Bill Currie c560744270 "use" parent defs 2007-04-06 11:01:34 +00:00
Bill Currie 240eab4b09 cleanup the tempfile from a failed preprocessor run on progs.src 2007-04-06 09:44:08 +00:00
Bill Currie 26e15db4ba handle comments and conditionals in preprogs.src 2007-04-06 09:27:56 +00:00
Bill Currie 04765083aa really warn only once for each uninitialized variable 2007-04-06 08:56:37 +00:00
Bill Currie e7f478b197 by default, don't use cpp when compiling the output of qfpreqcc 2007-04-06 08:41:33 +00:00
Bill Currie 5a8143a9c7 support float = vector and vector = float for traditional 2007-04-06 08:23:07 +00:00
Bill Currie eb9943973b handle . in frame macro names 2007-04-06 08:19:58 +00:00
Bill Currie bff92d9d32 properly handle strings in comments and comments in strings 2007-04-06 08:19:20 +00:00
Bill Currie 6bbf54c7cd handle /* */ comments better 2007-04-06 07:12:47 +00:00
Bill Currie 0e4fb6c01a no-cpp implies no-single-cpp 2007-04-06 07:11:38 +00:00
Bill Currie 8079c9951c catch nested /* in comments 2007-04-06 06:31:47 +00:00
Bill Currie ff0144f870 bring in the cleanups from my start at preqcc stuff (I don't know if that will ever go in, though, I'm thinking maybe it should be external) 2007-04-06 05:52:20 +00:00
Bill Currie df2bebde7e more vc build patches from phrosy 2007-04-06 01:09:58 +00:00
Bill Currie acc5e87619 missed this one 2007-04-04 11:40:00 +00:00
Bill Currie 0382b05780 various unsigned long -> uintptr_t conversions 2007-04-04 11:22:48 +00:00
Bill Currie ff132bb536 64bit windows patch from phrosty 2007-04-04 07:48:14 +00:00
Bill Currie 72af804b31 nested include reporting 2007-03-31 15:27:36 +00:00
Bill Currie 5e98c49188 chase down a runaway else 2007-03-31 15:26:58 +00:00
Bill Currie 90129fc4ec add $frame_reset grab command to reset the frame macro counter and sneak the command in before each file in the single-cpp script. This fixes the bogus animations in nq (and anything else, for that matter) 2007-03-31 13:54:09 +00:00
Bill Currie 03e1d6c3bf re-implement the comment lexer using states to re-learn how things work prior to implementing preqcc support 2007-03-30 09:02:36 +00:00
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 2b0c82c898 update for svn and debian mingw 2007-03-08 13:54:56 +00:00
Bill Currie 3a178c3a2f update for debian mingw packages 2007-03-08 13:44:03 +00:00
Bill Currie b0c1294f8a remove some ancient build flags 2007-03-08 11:31:59 +00:00
Bill Currie 48ba407984 my old build scripts (handy test for checking into sf, too:) 2007-03-07 14:28:51 +00:00
Bill Currie 476dbce456 seems MIPTEX means mipable textures, not the format 2007-01-07 01:19:33 +00:00
Bill Currie 99e05d2188 warning cleanup patch from raorn 2007-01-06 21:31:03 +00:00
Bill Currie 45d467d748 box tracing (instead of point). Currently disabled because it doesn't work right just yet. However, when it is working, it will let us do things like crouching, crawling, arbitrary sized objects (including players), etc. 2006-12-24 03:13:29 +00:00
Bill Currie e52633c492 make protocol dump info more readable 2006-12-19 11:53:18 +00:00
Bill Currie 0bd92e439a fix an interal error caused by losing the error state 2006-12-16 11:45:47 +00:00
Bill Currie 48d9d96005 don't try to create multiple objects for the same protocol 2006-12-16 08:09:10 +00:00
Bill Currie 904197c70e allow assignment of arrays to poitners 2006-12-11 09:26:45 +00:00
Bill Currie e9f49ca816 allow static local vars 2006-12-11 09:26:07 +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 48f8bbd12e group the struct rules together 2006-12-02 06:49:55 +00:00
Bill Currie b6a4a520d5 silence bison's new warnings 2006-12-01 08:17:55 +00:00
Bill Currie d28952dfcc fix a bunch of gcc-4.1 warnings (thanks for the heads up, jordi) 2006-11-30 22:52:36 +00:00
Bill Currie 538f0ee51f allow more hull points (don't remember why, now, but...) 2006-11-10 13:51:02 +00:00
Bill Currie 69e7b8a820 don't loop on a bad file name 2006-08-20 06:23:24 +00:00
Bill Currie 1925bef0c1 fix a bunch of bugs with single-cpp processing when not keeping temps 2006-08-20 06:20:30 +00:00
Bill Currie 130e6c1a3f fix some intermediate file issues 2006-05-24 14:50:24 +00:00
Bill Currie f7df6fea17 instead of having cpp args in progs.src, potentially breaking some mods, generate progs.i as a series of #includes and then compile everything in one pass 2006-05-24 14:35:39 +00:00
Bill Currie 8f097ce3dd fix a couple of typoes 2006-05-24 12:58:31 +00:00
Bill Currie ff28197da6 pass progs.src through cpp too 2006-05-24 11:19:48 +00:00
Bill Currie ada9797009 why r+t? we don't need to write. 2006-05-24 11:18:18 +00:00
Bill Currie 87cc09233c "long" audit. can't use long when we want 32 bits. May be a few more cases. 2005-10-23 13:19:21 +00:00
Bill Currie c90fa213d6 fix some warnings 2005-10-22 04:55:41 +00:00
Bill Currie 728dde167d explicity state errors are errors rather than leaving it implicit (tracking
gcc's messages again;)
2005-08-17 23:05:10 +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 d25a5de0df make a little more robust. seems not all cvs servers use the same datestamp
format
2005-07-16 03:59:20 +00:00
Bill Currie 0c974c0530 more tests 2005-06-14 11:29:42 +00:00
Bill Currie 3f58823fed vector-calls now works with rcall :) 2005-06-12 11:37:28 +00:00
Bill Currie aa6265859a allow -Cno-v6only to work when defaulting to traditional 2005-06-12 11:36:30 +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 66cabb587f add the vector-calls "optimisation" from fteqcc. makes it possible to
compile the version of frogbot with waypoints for almost 300 maps.
2005-06-10 07:31:25 +00:00
Bill Currie 116860bb66 don't segfault when running out of globals 2005-06-10 05:16:20 +00:00
Bill Currie 9f662787e0 get struct copy to/from struct fields via pointers. fixes a bug found by
snax
2005-06-09 10:34:03 +00:00
Bill Currie d261b42b95 fix a header error pointed out by Kaylea Hascall (thanks) 2005-06-08 07:24:29 +00:00
Bill Currie 501180aaac gcc-4.0 fixes. even found some bugs :) (names /not/ mangled this time) 2005-06-08 06:35:48 +00:00
Bill Currie 9c59d2e14e add a missing function 2005-05-07 09:52:57 +00:00
Brian Koropoff 2b666bd1ca Tweak qwaq a bit so it can be used to run Ruamoko Scheme 2005-05-01 11:46:20 +00:00
Bill Currie dff55040bc noticed a potential unused warning issue if that version of flex gets hit
again
2005-03-31 09:55:41 +00:00
Bill Currie 0edd694bac fix a default action type clash in some versions of bison 2005-03-31 08:23:11 +00:00
Bill Currie 71678e1859 don't loop infinitely when failing to read a riff file 2005-02-06 07:41:22 +00:00
Bill Currie 114843d7b8 do some cleanup on modelgen before getting into some hacking 2005-01-24 12:39:16 +00:00
Bill Currie b71f12a616 warning message cleanup
This is an imperfect revision of history.
2004-11-18 06:08:20 +00:00
Bill Currie ae456dc3a4 `secret' .c support so automake's dependency style autodetection works
This is an imperfect revision of history.
2004-11-14 23:15:00 +00:00
Bill Currie 554f4d071a get the type right when accessing arrays in a struct (in a pointer?)
This is an imperfect revision of history.
2004-11-13 13:22:30 +00:00
Bill Currie 56838844d2 add support for -E and still compile when -MD is used
This is an imperfect revision of history.
2004-11-13 13:22:00 +00:00
Bill Currie 66257e3a88 run in fear, function overloading is here
This is an imperfect revision of history.
2004-11-13 11:50:00 +00:00
Bill Currie 9b81bc5ea6 allow access to the parameter type via @param and variable initializers for local arrays/structs.
This is an imperfect revision of history.
2004-11-13 04:02:00 +00:00
Bill Currie 5f34f87b58 ivar access control seems to work now :)
This is an imperfect revision of history.
2004-11-13 01:37:00 +00:00
Bill Currie 7237087e71 update
This is an imperfect revision of history.
2004-11-12 21:20:00 +00:00
Bill Currie 4d044bfea4 make entity.vector.x work properly by making relative field offset work. also don't emit a field def for the resulting immediate
This is an imperfect revision of history.
2004-11-12 10:49:00 +00:00
Bill Currie abf25e0e1c real fix for uninitialized functions
This is an imperfect revision of history.
2004-11-12 05:04:00 +00:00
Bill Currie 0d14a8f9f3 minor cleanup
This is an imperfect revision of history.
2004-11-12 03:21:00 +00:00
Bill Currie 9d956b2979 more script usage
This is an imperfect revision of history.
2004-11-12 02:54:00 +00:00
Bill Currie 634dcbba95 forgot to allow struct move (for struct assigment)
This is an imperfect revision of history.
2004-11-11 22:41:00 +00:00
Bill Currie 5ef382d2a7 Add a rua wrapper for scripts (seems, to work, too:). Also added generic resource handle support based on strref handling in pr_strings.c.
This is an imperfect revision of history.
2004-11-11 04:06:00 +00:00
Bill Currie 64cc8c60d2 compile time protocol support seems to be complete now. fortunatly, protocols had never been written out so the corrections to the protocol related stuctures do not need a progs version bump. runtime protocol support hasn't been fully tested yet.
+load runtime support seems to be working.

This is an imperfect revision of history.
2004-11-11 00:34:00 +00:00
Bill Currie 7dfd9ab502 Use the script api to parse progs.src instead of idparse. Now any additional tokens on the first line of progs.src are ignored and any additional tokens on subsequent lines get cumulatively added to the cpp command line. See progs.src[.in] in tools/qwaq for a simple example.
This is an imperfect revision of history.
2004-11-11 00:24:00 +00:00
Bill Currie a97f74a6ac that particular error case is a type mismatch rather than an internal error. found when trying to compare a SEL with a string... oops :)
This is an imperfect revision of history.
2004-11-11 00:20:00 +00:00
Bill Currie b35561504c do proper selector registration. unfortunatly, I discovered I'd created pr_method_t incorrectly and so had to bump the progs version again
This is an imperfect revision of history.
2004-11-10 05:37: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 e7ab6b65bf fix an uninitialized variable
This is an imperfect revision of history.
2004-11-06 02:17: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 b46cff08aa handle param name changes between prototype and declaration gracefully
This is an imperfect revision of history.
2004-11-02 23:54:00 +00:00
Bill Currie 9f52181e34 fixes for methods in categories or not in an interface
This is an imperfect revision of history.
2004-11-02 11:56:00 +00:00
Bill Currie 9768568eeb get the number of points for the clipped winding correct
This is an imperfect revision of history.
2004-11-02 07:29:00 +00:00
Bill Currie 181df01add initialize the function tables properly when "converting" a qfo, fix a buffer overflow in file loading and remove the now unnecessary hunk initialization.
This is an imperfect revision of history.
2004-11-02 07:15:00 +00:00
Bill Currie a3a2dd62e3 fix type of "self"
This is an imperfect revision of history.
2004-11-02 07:13:00 +00:00
Bill Currie a4dbdb4d06 whitespace
This is an imperfect revision of history.
2004-11-02 07:08:00 +00:00
Bill Currie fff41d664a detect re-declaring identifiers as different types (typedef, enum, var, etc)
This is an imperfect revision of history.
2004-11-02 07:02:00 +00:00
Bill Currie a2e05dbe83 make bison output a state file
This is an imperfect revision of history.
2004-11-02 05:19:00 +00:00
Bill Currie 1e1734f6b4 remove some redundant code
This is an imperfect revision of history.
2004-11-02 05:17:00 +00:00
Bill Currie 8e2f392d2d pr_obj.h: add the structure for static instances rua_obj.c: add support for +initialize test.r: add some test code for +initialize main.c: don't need to initialize the hunk any more and fix a buffer overflow
This is an imperfect revision of history.
2004-11-02 05:12:00 +00:00
Bill Currie 96b65ba63c get wad creation mostly working (known to work for map textures)
This is an imperfect revision of history.
2004-11-02 05:07:00 +00:00
Bill Currie 25484f415b move the script parser from qfbsp into libQFutil and correct a spelling error
This is an imperfect revision of history.
2004-11-02 05:05:00 +00:00
Bill Currie ca46503607 add -Wsign-compare (default for -Wall only in C++) and fix up the warnings 2004-07-13 19:14:01 +00:00
Thad Ward 0d6af140b8 correct the date format to match the new format used by the new CVS. the
offset from GMT is also parsed out, but is not currently used. Also, there
is no need to subtract 1900 from the year when passing to timegm(), as it
assumes values over 999 are the actual year.
2004-06-16 07:36:57 +00:00
Bill Currie 8c10e2e355 this should fix the string case errors on sparc64 2004-05-15 01:00:47 +00:00
Bill Currie ec97775e3c plug another leak 2004-05-11 07:27:05 +00:00
Bill Currie f10f59bb42 don't try to write non-existant textures 2004-05-11 07:26:33 +00:00
Bill Currie 3e16e3dc40 ookii itai... forgot to free the malloced memory for qpic and mip 2004-05-11 06:17:34 +00:00
Bill Currie ccfaeaf999 make wad extraction a little more useful by writing the known image formats
as pcx. (palette is written as pcx too, to make it easy to view)
2004-05-10 00:33:48 +00:00
Bill Currie 67f913289c move wad_extract into the wad utility and make QFS_CreatePath more
generally usable
2004-05-09 22:58:37 +00:00
Bill Currie 3483b3b2b6 handle #pragma gracefully (ie, ignore it) 2004-05-09 02:12:49 +00:00
Bill Currie 2ccff86089 ignore unknown stuff 2004-05-09 00:57:57 +00:00
Bill Currie 4d2300ff11 finally support png 2004-05-01 04:14:59 +00:00
Bill Currie 1a9ca12bcf can't use None due to the math 2004-05-01 03:41:51 +00:00
Bill Currie 3f6b2fd87b has some issues, but support writting to stdout 2004-05-01 03:39:33 +00:00
Bill Currie 7205e10f94 fun tool to display item info in a map (using an already extracted entity
file). use as a filter
2004-05-01 03:21:42 +00:00
Bill Currie 42c88b23fc correct the help output 2004-04-30 21:52:17 +00:00
Bill Currie a12074c1a6 can now extract entities from foo.bsp to foo.ent 2004-04-30 21:51:00 +00:00
Jeff Teunissen fe654959ee qfcc man page updates. 2004-04-28 04:49:15 +00:00
Jeff Teunissen 31f5bb5d96 Small changes to the QFCC book. 2004-04-28 00:43:03 +00:00
Jeff Teunissen b057b6cb26 Some signed/unsigned formatting stuff found by lint. 2004-04-27 23:17:41 +00:00
Bill Currie 14900bb82e fast-float code option (defaults to on). kills almost 3000 statements from
prozac
2004-04-27 20:24:37 +00:00
Bill Currie 8a7bb9c4a0 fix a silly that messed up type mismatch errors 2004-04-12 23:46:21 +00:00
Bill Currie 9a3acc8035 get the field offset correctly 2004-04-09 04:30:19 +00:00
Bill Currie 7b28c555ba quaternion field access now works 2004-04-09 04:12:44 +00:00
Bill Currie 332ec82495 update the scope of local defs to the parent scope when the creation scope
goes away (doesn't get updated to the global scope). fixes a bug where
local defs would be miscounted (and sometimes lost)
2004-04-09 03:47:41 +00:00
Bill Currie 0b61dae402 allow .imm fields (need a better test, I think) 2004-04-09 03:45:55 +00:00
Bill Currie 50dc955652 fix a couple out-by-one errors highlighted by quaternions 2004-04-09 02:20:47 +00:00
Bill Currie 0e47ee96f8 spelling fixes 2004-04-08 18:53:46 +00:00
Bill Currie 4c4f40f137 fix a few bugs. basics seem to be working 2004-04-08 05:13:24 +00:00
Bill Currie 5869cb693e oops 2004-04-08 05:04:50 +00:00
Bill Currie a7103c6732 quaternion conjugate 2004-04-08 04:59:10 +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 8220d6d3c9 for loop tests 2004-03-30 02:31:50 +00:00
Bill Currie 25ac9cb07b fix "for (;;)" etc 2004-03-30 02:31:02 +00:00
Bill Currie 1d40013e5e get the spotlight working 2004-03-25 05:41:33 +00:00
Ragnvald Maartmann-Moe IV e27db9f6b2 More compile fixes for current gcc. 2004-03-21 18:53:41 +00:00
Bill Currie 38c5b92086 fix a really stupid error (missing {}s) that caused vis data to basicly get
lost when reading the new portal file format
2004-03-19 02:20:47 +00:00
Bill Currie 9e6be1e029 hopefully handle \r\n endings 2004-03-19 00:41:14 +00:00
Bill Currie 2b26072c8f open output file in binary mode 2004-03-19 00:38:35 +00:00
Bill Currie 199455d38f fix a silly bug that caused all parsed keys to be "" 2004-03-17 20:22:19 +00:00
Bill Currie 5bd524cd8b add a note about memory consuption 2004-02-24 02:56:32 +00:00
Bill Currie f1c9a8d24b remove a mostly unused field 2004-02-21 05:58:01 +00:00
Bill Currie 14e8bfe94b auto-init for uninitialized locals in traditional mode as requested by
Grievre
2004-02-21 05:52:05 +00:00
Bill Currie e021afd141 remove some more arbitrary limits: tokens and keys can now be any size 2004-02-21 01:34:59 +00:00
Bill Currie 0360859a0f all warnings (except for @self and self) are now fully controllable 2004-02-17 00:39:21 +00:00
Bill Currie efb52dc9f9 don't seg on null field names 2004-02-13 23:08:22 +00:00
Bill Currie 865b31caac make sure messages generated by issues within a function don't get
"At top level"
2004-02-13 04:57:15 +00:00
Bill Currie b6c2320d5d change --include FILE to pre-include a file rather than add a directory search
path. Maps to -include FILE on the cpp command line.
2004-02-13 04:46:50 +00:00
Bill Currie 7ed77fd18b ignore pdf files 2004-02-12 21:58:52 +00:00
Bill Currie 69730cae8b fix some type classes in older bison 2004-02-12 01:37:27 +00:00
Bill Currie 02d89ee7d5 allow computed functions for "think" in state expressions 2004-02-11 08:09:10 +00:00
Bill Currie 1c090c38a3 allow non-const expressions for the frame number and make sure the time
step is a float (for state expressions)
2004-02-11 04:00:11 +00:00
Bill Currie afdbd90bc1 some tests I've accumulated over time. don't want to lose them accidently
:)
2004-02-11 02:23:40 +00:00
Bill Currie 0fe4c2a600 catch redefined functions 2004-02-11 01:53:17 +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 1fc517f7db C style functions can now (optionally) be used (void foo ();) 2004-02-11 00:36:34 +00:00
Bill Currie e2602bc9d5 fix misparse of void () foo; 2004-02-10 23:49:45 +00:00
Bill Currie 7af8f8a6f6 ; at the end of a function is no longer required. void () foo = {} and
void () foo = {}; are both valid now.
2004-02-10 23:20:44 +00:00
Bill Currie 6e4c6478a1 getting closer to optional ; at the end of functions. also gets rid of the
need for the context-sensitivity hack used for distinquishing frunction
inits from struct/array inits
2004-02-10 03:25:24 +00:00
Ragnvald Maartmann-Moe IV 2b8fc38a2c Fix an ypo. ;) 2004-02-09 16:51:06 +00:00
Bill Currie ddc44f33da compress the 4 method building rules into 2 2004-02-09 07:35:19 +00:00
Bill Currie 3f27042e8d forgot to look after current_storage with methods 2004-02-09 07:17:44 +00:00
Bill Currie 1181fb267b don't seg when constants are involved in && or || expressions 2004-02-09 02:23:37 +00:00
Bill Currie 499dac6bb1 step one towards more flexible function declarations 2004-02-08 23:46:40 +00:00
Bill Currie f70605f5f7 ensure a op= b treats b as if it was (b) 2004-02-08 05:28:30 +00:00
Ragnvald Maartmann-Moe IV 527342d80d Whitespace, codingstyle, pouncing shalraths. 2004-02-08 02:53:58 +00:00
Ragnvald Maartmann-Moe IV c4402e07bd Working towards merging q2 model, sprite, and map support. Check back in a few
years, might be finished. ;)
2004-02-08 02:49:38 +00:00
Bill Currie bf592412f8 give temp defs a name, making it easier to read disassembly output (.tmpN) 2004-02-06 08:58:19 +00:00
Bill Currie 1d800caab7 make autoconvertion work for return 2004-02-06 08:40:28 +00:00
Bill Currie 3f91157b26 a little easier to read 2004-02-05 23:46:21 +00:00
Bill Currie 3764497143 various impovements from Vic via hqbsp (lordhavoc) 2004-02-05 04:11:39 +00:00
Chris Ison 6ec1cfe389 win32 fix for over-compliant getopt 2004-02-05 03:27:35 +00:00
Bill Currie 22fe9de3f9 terminate buf properly (\r\n -> \n translation can cause the bytes read to
be /much/ smaller than expected)
2004-02-05 00:13:42 +00:00
Bill Currie 8a14e30896 cast block expressions 2004-02-04 06:41:07 +00:00
Bill Currie d02b0686b1 don't seg if the method can't be found 2004-02-04 06:31:12 +00:00
Bill Currie 61da478188 these changes from earlier seem to be ok 2004-02-04 06:00:45 +00:00
Bill Currie c43950abd8 autoconvert for function parameters now works :) 2004-02-04 05:49:54 +00:00
Bill Currie 892e80938b that made a royal mess :( 2004-02-04 04:49:46 +00:00
Bill Currie b2474a2b97 better auto-conversion of function parameters (ugh, this is getting messy
:( )
2004-02-04 04:33:08 +00:00
Bill Currie f79e34628b broke returning NIL 2004-02-04 02:30:18 +00:00
Bill Currie ab4f0e7ca9 warn on return foo (); where foo returns void 2004-02-04 01:30:12 +00:00
Bill Currie f748b6582a need to do relocs separately from ddef creation due to pr_globals needing
to be allocated first
2004-02-04 00:36:15 +00:00
Bill Currie e8a9060219 oops, messed up things like float = int 2004-02-04 00:30:42 +00:00
Bill Currie 3cd806fdcc fix some over-conversions 2004-02-04 00:27:42 +00:00
Bill Currie 1068032f1b make implementation methods not in the interface work properly when
-Winterface-check isn't specified and make sure classes don't clash with
defs or enums
2004-02-03 07:48:23 +00:00
Bill Currie 0f94dd95d2 make @class foo work when foo is already defined 2004-02-03 07:29:20 +00:00
Bill Currie 389ff5be1c finally found the correct way to handle generated source 2004-02-03 05:30:11 +00:00
Bill Currie 4f9a24d94d and another one 2004-02-03 03:38:51 +00:00
Bill Currie 9df4a7948e make dist fixes 2004-02-03 03:22:48 +00:00
Bill Currie c16fc91328 update with qfprogs 2004-02-03 02:40:00 +00:00
Bill Currie 371a0b8e75 support old-style portal files again 2004-02-02 05:44:46 +00:00