This utility extracts the entity lumps from .bsp or .pak files,
and writes them into files bspname.ent, for further processing.
Unpack zip -d/folders option to put the source into a subdirectory.

The code is a minor modification of Raphael Quinet's QEU (thanks,
Raphael, for providing code that's so portable, comprehensible and
modifiable, a standard I have certainly failed to maintain!).  Full
source (I hope I haven't left anything out), and a TC3 project file
is provided (though of course you'll have to change the paths).

Since whatever virtue may inhere in this code is due to the work
of Raphael Quinet, all usage must be in accord with the terms
specified by him, at the top of the source-files.

----

This version of unent supports Quake, Quake2 and Hexen2.  Forthcoming
Quake engine games will be supported if possible.

----

File-formats, so I can remember them for next time:

  .pak:  4-byte `magic number', spelling PACK (on DOS & other little-endian
	 systems), followed by 4-byte (UInt32) offset and 4-byte length
	 for directory to pack components.  Same for Q1, Q2, H2.

  .pak directory entry:  56 bytes for the name, followed by 2 UInt32's
	 for offset and length (F_PACK.H).

  .bsp/Q1,H2:  4-byte `magic number' = with 1st byte = hex 1D, remaining
         3 = 0, followed by UInt32 directory offset & size; entities are
	 first.

  .bsp/Q2:  4-byte magic number spelling IBSP, followed by UInt32
	    `bsp version number' = 38, followed by 2 UInt32's
	    for directory offset & size (relative to start of .bsp
	    file if it's in a .pak).  Entities are again first.

  .bsp directory entry: 2 UInt32's for offset and size (F_BSP.H).
	    .bsp's have a fixed number of componets, so position
	    marks type.

  - tiglari@hexenworld.com
