Commit graph

2572 commits

Author SHA1 Message Date
Bill Currie
8587079c0d Fix a case&paste error. 2012-09-04 11:59:04 +09:00
Bill Currie
38facac7ce Add a very simple wad reader.
It supports only MipTex data (for automatic data conversion), and it's very
fragile, but it will do for now.
2012-09-03 19:37:04 +09:00
Bill Currie
125952d17d Un-hardcode the light distance. 2012-09-03 14:34:27 +09:00
Bill Currie
dfaf28001a Create colored boxes for sized entity classes.
The data is taken from the parsed entity class data. No error checking is
done yet.
2012-09-03 14:33:32 +09:00
Bill Currie
16952ffbbb Support loading entity class data into blender.
The qc source path is specified via the dirpath property in the QF Entity
Classes panel of the scene data. The scanned entity classes are stored in a
plist in a blender text file for persistent storage (so the directory
doesn't need to be scanned every time). Also, so the data doesn't have to
be parsed every time, the data is stored in a normal python class hanging
off the properties class (evil hack?).
2012-09-03 13:38:28 +09:00
Bill Currie
3cad0f978b Revamp entity class loading for blender integration.
Slightly cleaner EntityClass building, and now the directory scanner is
part of the EntityClassDict class, which also supports reading/writing
plists (for persistent storage in blender).
2012-09-03 13:35:18 +09:00
Bill Currie
b3e5083f60 Add a symlink to io_mesh_qfmdl's qfplist.py
The map editor addon needs to use it too, but I don't want to duplicate the
file in git.
2012-09-03 13:33:59 +09:00
Bill Currie
c08fd08025 Write empty array and dictionary items on one line.
Makes for slightly tidier plist text.
2012-08-31 16:14:49 +09:00
Bill Currie
43abf8e3df Support writing int and float items to a plist.
They are written as normal string items, so anything using the plist later
on will need to know the context, but at least now there's no need to first
convert int or float data to strings before writing a plist.
2012-08-31 16:10:30 +09:00
Bill Currie
2b55687aa5 Correct a missed function rename.
Serves me right for not testing properly :P
2012-08-31 15:54:26 +09:00
Bill Currie
ffcd78bc28 Add other entities as empties.
For now until I get entity class data importing sorted out. The empties are
set to display as size 8 cubes (+/-8bu).
2012-08-30 19:56:08 +09:00
Bill Currie
4b5242104a Add lights from the map to the scene.
Only the very basics are done at this stage, but things look reasonable.
The lamp energy might need tweaking.
2012-08-30 17:34:05 +09:00
Bill Currie
5d2b2639d0 Generate geometry for entities with brushes. 2012-08-30 14:50:19 +09:00
Bill Currie
15a906aadb Get map parsing pretty much working.
No geometry is created yet.
Both id and quest formats are supported.
e1m1.map parses in less than two seconds on my system.
2012-08-30 13:19:30 +09:00
Bill Currie
97c99de581 Create the entity class scanner.
It recursivly scans the QC source tree looking for QUAKED comments and
builds a dictionary of the found entity classes.
2012-08-29 15:43:53 +09:00
Bill Currie
08d7131c1b Create a python version of QF's script parser.
It's error handling is bogus, but it works for good input :)
2012-08-29 14:55:11 +09:00
Bill Currie
365f20bb95 Make the ps3 cross-build self-contained.
More or less.

This is a bit of an experiment (which seems to work nicely) in that qfcc
and pak are build natively in one build tree, then the full system is
cross-built in another tree using the natively build qfcc and pak. Both
trees are created by cross-configure.sh as sub-directories of the current
directory. However, cross-configure.sh still assumes it is being run in a
subdirectory of the main quakeforge directory.

cross-make.sh checks if the native tree is in the current directory and if
so, builds it, otherwise it just runs make for the cross-build tree (this
allows for running cross-make in a sub-directory for things like sorting
out build issues).
2012-08-20 10:56:09 +09:00
Bill Currie
0976ff8582 Nuke mentions of HOST_CC.
CC_FOR_BUILD is the recommended name these days (HOST_CC was from an old
gcc version, and is confusing anyway). Also, CC_FOR_BUILD should be set by
configure.
2012-08-20 10:51:46 +09:00
Bill Currie
a2f2d4d949 "Check" for the availability of pthreads.
Unfortunately, just because the header is there doesn't mean anything will
actually work :(. Also, the check is based on the host vendor/os for now.
Yes, it's rather lame but it will do for now.

With this, QF will build on an almost fresh ps3toolchain install. Only two
"fixes" are needed:
 o  In $PS3DEV/ppu/powerpc64-ps3-elf: ln -s ../include sys-include
 o  libsamplerate cross-built and installed.
2012-08-19 13:40:42 +09:00
Bill Currie
9bfcdad35a Fix some type-size safety issues.
Expecting int to be 32 bits is a little dangerous, and the function
versions of swap/noswap should be unsigned rather than signed.
2012-08-19 13:37:06 +09:00
Bill Currie
358ea4ef9a Fall back to execve/wait when execvp and waitpid are unavailable. 2012-08-19 13:18:38 +09:00
Bill Currie
5684347088 Some fixes for mingw cross-builds.
The fixes came to light while getting ps3toolchain cross-building working.
2012-08-18 22:12:02 +09:00
Bill Currie
cd1e3e5b6f Cross configure/make scripts for ps3toolchain based builds. 2012-08-18 21:33:58 +09:00
Bill Currie
af0db29981 Add support for meshes with multiple UV maps.
One common use for a mesh having multiple UV maps is when combining several
mesh objects into one: the base UV map is the result of joining the meshes
(and will be a right mess of overlapping UV islands), but an additional UV
map is then setup as a copy of the first but with the islands re-packed so
nothing overlaps. The export script now searches for the active UV map and
uses that for both UV coordinates and the skin texture (when none is
specified).
2012-08-12 13:38:12 +09:00
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