The contents of the barycentric coordinatess in the vertex data don't
matter for the dummy vertices, so skip the if and just use the first
barycentric coordinate.
Most important change is to use the arrays directly rather than using
element indices. I don't remember why I did it that way as it gained
nothing and using arrays directly is much simpler.
Also, the "dummy" vertices at either end of the trail are no longer
duplicates of the end vertices, but are now extrapolations. This fixes up
the weirdness at either end of the trails.
This was caused by an out-by one error when setting up the skin: if cmap
was 0 then the gl_skin struct would be taken from index -1 of the array and
thus cause all sorts of grief.
GL sometimes crashes when building skins. This probably isn't the correct
fix (finding the situation where fb->tex can become NULL despite fb being
non-null is), but it does kill the segfault. Luckily, this is git and this
commit can just be reverted when the real fix shows up. :)
Also fix a bug where despite supporting 32 buttons, only 18 were actually
supported, and a similar issue for the number of axes.
My saitek x52 has 34 buttons and 10 axes. Whee.
The script format is the same as the console command-line, so no new
format :). The scripts are compiled to byte code and cached. They are
referenced by name (eg, "pt_fire"), though the names are likely to change.
It seems to work quite well and should prove to be a good basis for
scripting particle effects in general.
They're actually guaranteed for the first and last segments due to the
first and last points being duplicated in the buffer (simplifies design).
This also handles the rare case where a vector appears to go directly into
or out of the screen.
Everything works nicely if only one of n1 or n2 is 0, and for the very rare
case of both n1 and n2 being 0, then a final normal of 0 is reasonable.
This fixes the problem of not finding files without a .gz extension when
gzip support is enabled (most of my quake data is compressed, so it took a
while for me to notice the problem).
The search for these files will stop in the vpath that contains the .bsp
file to which they belong. This will prevent problems with
id1/maps/start.lit being used for shadows/maps/start.bsp.
_QFS_VOpenFile is actually _QFS_FOpenFile reimplemented to take vpath start
and end parameters so the search can be limited. QFS_VOpenFile,
_QFS_FOpenFile, and QFS_FOpenFile are all wrappers for _QFS_VOpenFile.