qbsp3
31 May 1999
David Hyde (rascal@magnolia.net)

This version of qbsp3 is based on the original source code supplied by id 
Software, modified by Raven Software for Heretic 2.

Neither id Software nor Raven Software supports the changes made to this
version of qbsp3.

Detail hint brushes
   This change was suggested by Alexander Malmberg as a method for controlling
   brush fragmentation, while not producing a lot of unecessary portals. This
   change allows GenSurf (in particular) to produce detailed terrain surfaces
   that are very r_speeds efficient and compile VERY quickly.

Bug fix to faces.c
   Bug fix to faces.c discovered by Alexander Malmberg. This fix is described 
   in detail at http://frag.com/quest/doc/qbsp3_bug1.html. If you have any 
   questions concerning this change please address them to A. Malmberg at 
   alexander@malmberg.org. This fix will potentially lower r_speeds in a map 
   (though not much), prevent occasional visual errors, and possibly prevent
   "WARNING: leaf portals saw into leaf" errors.

"Bounds out of range" checks
   Fixed an error in map.c that prevented qbsp3 from correctly reporting 
   "bounds out of range" and/or "no visible sides on brush" errors for brushes 
   outside the +/-4096 limits in the Y or Z directions. The original source 
   code checked the X direction 3 times. This error was originally detected 
   (as far as I know) by Steven Boswell, and reported in his excellent article 
   at http://wdunltd.ml.org/whatis/Quake2/bspvis.html

Floating point support
   Reads floating point numbers from .map files as floats, rather than 
   truncating to integers. All internal operations in qbsp3 have always used 
   floats. This change allows users whose editors (e.g. Quark) produce maps 
   with floating point values to use this version of qbsp3 without roundoff 
   errors. This change will have not cause any problems for maps containing 
   integer coordinates.

Clip brush bug
   Added a change to WriteBSP to compensate for a bug in Quake2. This change 
   was developed by Alexander Malmberg. The short version: Q2 expects to find 
   at least one empty leaf in a .BSP file, but incorrectly thinks a leaf with 
   a clip brush in it isn't empty. If all of a maps leafs contain clip brushes, 
   Q2 displays the error message "Map does not have an empty leaf" and shuts 
   down. Note that this error generally only occurs in small test maps that 
   are mostly empty (so that the only leafs generated are those produced by 
   the default 1024 cuts). The change to WriteBSP adds a dummy empty leaf if 
   one is not present.

Lowercase texture names
   Automatically converts all texture names to lower case. This will prevent 
   the upper case animated texture crash that occurs for shareware WorldCraft 
   users.

==================================================================================
Visual C/C++ 5.0 was used to compile the source code. No optimizations were used 
(I'm paranoid).

******************* DISCLAIMER ******************************
*                                                           *
* I (David Hyde) make no warranties regarding the computer  *
* program QBSP3.EXE. Users assume responsibility for the    *
* results achieved for computer program use and should      *
* verify applicability and accuracy.                        *
*                                                           *
*************************************************************

