Bill Currie
971e689d3d
Fix a slew of whitespace issues.
2012-08-07 13:25:44 +09:00
Bill Currie
a3c8209bdf
Handle missing frame information a little more usefully.
...
If there's no export script, or the export script has no frame information,
animation data will be collected by running through blender frames 1 to the
current frame (inclusive). Each frame will be exported as a single frame
rather than as members of a frame group.
2012-08-07 13:23:19 +09:00
Bill Currie
39b2e80207
Optionally apply the object's transform to the mesh.
...
The default is to apply.
2012-08-07 11:49:08 +09:00
Bill Currie
634b3b043d
Export non-triangular faces as triangle clusters.
...
It turns out this behavior is preferable (by at least one artist, anyway).
2012-08-07 10:49:32 +09:00
Bill Currie
a4da11cdb5
Correctly handle multiple vertices sharing a UV coordinate.
...
Need to use both UV coordinate and vertex index to find unique
combinations. This should fix leileilol's broken meshes.
2012-08-07 10:26:35 +09:00
Bill Currie
78bfd30648
Export vertex normals.
...
I'd forgotten I hadn't implemented exporting vertex normals. While I've
modified things for making better use of blender's tools and avoiding the
unnecessary use of objects, the code is taken from the ajmdl blender 2.4
export script.
2012-08-07 09:52:47 +09:00
Bill Currie
5661e738ac
Actually return the skin in null_skin()
...
Oops.
2012-08-07 09:50:38 +09:00
Bill Currie
ff4c2cfb63
Add a todo list for the mdl addon.
2012-08-06 22:34:19 +09:00
Bill Currie
0e7e45b91d
Redo the io_mesh_qfmdl packaging.
...
It is cross-platform, after all.
2012-07-17 17:30:16 +09:00
Bill Currie
fa61d2def7
Delete old io_mesh_qfmdl zips too.
2012-07-17 17:21:56 +09:00
Bill Currie
087908adcd
Link in the keys progs builtins.
2012-07-15 07:39:50 +09:00
Bill Currie
97c87cf996
Initial checkin of the qwaq mini-engine.
2012-07-15 07:39:50 +09:00
Bill Currie
b6125276e4
Fix the mis-handling of the progs.dat line in preprogs.src
...
Gah, must have lost a line at some stage. Also, handle line number
directives.
2012-07-14 19:01:47 +09:00
Bill Currie
7444371162
Disable bolding for special chars.
...
If an escape sequence is used to access a char, the the programmer probably
wanted that char, regardless of the current bolding mode.
2012-07-14 17:47:34 +09:00
Bill Currie
3b8141691e
Fix a bunch of continue vs break issues.
2012-07-14 17:26:13 +09:00
Bill Currie
1364bff91b
Add an extended mode to qfcc.
...
Extended mode allows extra keywords (switch, for, etc) that are compatible
with v6 progs.
2012-07-14 17:16:33 +09:00
Bill Currie
4055d9a435
Add support for \s escapes to qfcc.
...
I guess \s is an fteqcc extention for toggling bold characters. At the
request of freewill.
2012-07-14 11:47:26 +09:00
Bill Currie
e657390ab5
Undo a mv -> cp change.
...
Turns out it wasn't quite what I thought it was. *shrug* :)
2012-07-13 18:14:50 +09:00
Bill Currie
fe26a55cc4
Package the mdl import/export addon.
2012-07-13 17:03:11 +09:00
Bill Currie
1100596431
Include the mdl import/export addon in the distribution.
...
A tad embarrasing...
2012-07-13 07:59:50 +09:00
Bill Currie
f467e2de54
Use sed's in-place option.
2012-07-11 13:38:27 +09:00
Bill Currie
7573c38122
Create qfspritegen based on id's sprgen.
...
No guarantees it works, but it should be able to convert a bunch of pcx
images into a sprite.
2012-06-30 20:20:15 +09:00
Bill Currie
0d9d777086
Fix Win32 package building for recent changes.
2012-06-29 11:15:11 +09:00
Bill Currie
dbc203b625
And a few more bits of whitespace.
2012-05-23 08:21:27 +09:00
Bill Currie
23a38738fc
Massive whitespace cleanup.
...
Lots of trailing whitespace and otherwise blank lines.
2012-05-22 08:23:22 +09:00
Bill Currie
0036a5e113
Ensure edict_size is never 0.
...
Avoids division by / in NUM_FOR_EDICT
2012-05-06 21:35:42 +09:00
Bill Currie
1dd5cccda2
Correct some more error messages.
2012-05-06 18:52:05 +09:00
Bill Currie
a0788c6cdf
Implement constant folding for unary operators.
...
Including conversions between float and int :)
2012-05-06 18:49:07 +09:00
Bill Currie
f781e9078c
Correct some typos in error messages.
2012-05-06 18:43:18 +09:00
Bill Currie
954e03c3f7
Report the correct function name for the largest locals.
...
I must have been tired when I adapted that code.
* taniwha dons brown paper bag
2012-05-06 13:02:11 +09:00
Bill Currie
55ecf94f2d
Don't draw arrows leaving return statements.
...
Return statements never flow to the next block (or any other block, for
that matter), so drawing arrows leaving them not only messes up dot's
graphs, but is quite missleading.
2012-05-05 18:04:10 +09:00
Bill Currie
56410ddc58
Prevent merged if/goto losing its way.
...
When mering if/goto (ie, if skipping a goto), the rest of the dead code
remover is used to delete the goto. That part of the code unuses the goto's
label. The if was getting the goto's label without the lable's used count
being incremented (the usaged temporarily increases by one). I have no idea
why the problem showed up randomly, but this seems to fix it (it fixes /a/
bug, anyway).
2012-05-04 22:35:20 +09:00
Bill Currie
953e789db2
Handle movement of the final block.
...
Moving a final block caused segfaults and weird flow graph corruptions.
2012-05-04 19:48:32 +09:00
Bill Currie
e8c17c68e6
Fix a segfault when the switch expression errors.
2012-05-04 18:13:11 +09:00
Bill Currie
5df25133b3
Implement code movement for unconditional jumps.
...
That is, when the destination of the jump is reachable via only the jump.
2012-05-04 18:00:05 +09:00
Bill Currie
33bfac0508
Process all basic blocks for jump threading.
...
I'd copied the for loop from the dead block removal code, but jump
threading doesn't need to look at the following block...
2012-05-04 14:10:30 +09:00
Bill Currie
f169a7732d
Factor out label unuse.
...
I expect to need this more often in the future.
2012-05-04 14:01:39 +09:00
Bill Currie
d2da3b8246
Update old test for new syntax.
2012-05-04 11:04:58 +09:00
Bill Currie
75aa28cfac
Mark all subsequent blocks as reachable after if/goto merge.
...
If an if/goto merge is done in the first dead block pass, no blocks after
the merge have their rechable flag set because they've never been tested.
2012-05-04 10:58:18 +09:00
Bill Currie
8ddd58f951
Fix the dropping of the block after the merged if/goto.
...
The naive implementation of the if/goto merging was letting the old target
of the if get dropped because the block would lose its label and thus be
judged unreachable because the preceeding goto block was still in the list.
Instead, when the if/goto are "merged", mark the goto block as unreachable,
the following block as reachable, and break out of the analysis loop to
force the removal of the goto block. Since the dead block removal function
loops until no action is taken, all other dead blocks will be removed.
2012-05-04 10:07:55 +09:00
Bill Currie
e866619de6
Output basic block flow diagrams to files.
...
The output can be controlled via --block-dot (not yet documented). The
files a named <sourcefile>.<function>.<stage>.dot. Currently, stage will be
one of "initial" (after expression to statement conversion), "thread"
(after jump threading), "dead" (after dead block removal), "final" (final
state before actual code emission).
2012-05-04 09:45:51 +09:00
Bill Currie
3da44ace52
Merge if and goto blocks when if only skips over the goto.
2012-05-03 22:21:32 +09:00
Bill Currie
6afdfb5fac
Unuse label expressions that are no longer necessary.
2012-05-03 22:20:00 +09:00
Bill Currie
402a578bf8
Add some more helper functions.
...
Things were getting messy with the strcmps.
2012-05-03 22:17:23 +09:00
Bill Currie
88bed3644e
Rename some helper functions.
2012-05-03 22:11:52 +09:00
Bill Currie
159f1bafea
Add a little more info to statement flow diagrams.
...
The relative block number and the label user count are printed now.
2012-05-03 22:09:49 +09:00
Bill Currie
6900907129
Remove dead labels when jump threading.
...
This lets the dead block removal do a better job.
2012-05-03 19:32:44 +09:00
Bill Currie
ab73a267cd
Do not unconditionally remove labels from blocks.
...
Labels can be shared between multiple flow-control instructions, so use the
label's used counter to determine when to remove the label. This was
causing problems with the jump threading.
2012-05-03 19:22:57 +09:00
Bill Currie
c79620f04c
Make statement blocks more identifiable.
2012-05-03 19:10:44 +09:00
Bill Currie
43b5edf46b
Implement jump threading.
...
First real optimization :)
2012-05-03 17:42:58 +09:00