                                .-----------.
                                |  Bsp2t3d  |
                                `-----------'
           The little Quake BSP to Unreal brush conversion utility
                       by Jeff "Pointdexter" Preshing


WHAT IT DOES

   It helps you convert Quake maps to Unreal maps.



HOW TO USE IT

   1.  Get a BSP file for Quake.  For example, foo.bsp

   2.  Run Bsp2t3d on this file with the -a option.  After running this,
       you should find a few *.t3d files in the directory you ran it from.
       Example:
                   Bsp2t3d -a foo.bsp

       ...would create the files foo000.t3d, foo001.t3d, foo002.t3d, etc.
       The first file, foo000.t3d, caontains the main brush of the entire
       level.  Each of the other *.t3d files come from other entities in the
       Quake map, like lifts and doors.

   3.  Create a new, empty level in UnrealEd.

   4.  Select Brush->Import from the menus.  Import the first file, in this
       case foo000.t3d.  For the import options, choose Nonsolid and Keep
       Original Polygons Intact.
       
   5.  After it loads, subtract the brush from the world.



IMPORTANT TIPS

   Whenever you want to select an entire surface in UnrealEd, you'll have to
   click on the surface (which may only select a piece of that surface) and
   then hit Shift+C.  Shift+C will select all the adjacent coplanar faces to
   that surface, which is what you want.

   The reason that most of the surfaces are broken into pieces is because
   when a Quake BSP is made, surfaces are split as part of the BSP process.
   I could modify the converter to detect and merge adjacent coplanar faces
   before outputting Unreal brushes, but so far it hasn't seemed worth the
   bother.  (Note: if you import the brush in UnrealEd with Merge Coplanar
   selected, it will perform this step for you.  Unfortunately, it doesn't
   work so great - it will merge coplanar faces even if they're not adjacent
   to each other - meaning that if you select some face, you may also have
   selected a face way over on the other side of the map.)



COMMAND LINE OPTIONS

   Run the program with no options.  It will tell you what the options are.
   However, it works best when you don't use any of the fancy options.  The
   only ones you really need are -l, -e and -a.



IT MAY NOT ALWAYS WORK

   It does dm4, dm3 and Hipdm1 for sure.  But you may find that UnrealEd
   gives you error messages when you try to work with the brushes from other
   Quake maps.  In this case, all you can do is cry like a little girl.  The
   problem lies in the fact that UnrealEd makes no promises to work with
   brushes having more than 500 faces; in fact it says so when you try to
   import them.  Nevertheless, sometimes it works, sometimes it doesn't.  Try
   using different import options, try intersecting the brush with a cube to
   divide the brush in half, maybe you'll find a way.  You never know, but
   don't get your hopes up.



POSSIBLE ENHANCEMENTS

   Of course, hypothetically, modifications to Bsp2t3d could solve the
   problem.  I thought of having it automatically break a Quake map into
   smaller brushes, but well, that's something you could write a PhD on.
   Alternatively, I could modify it to output a different format which
   3D Studio Max can import.  You could then load the map into Max,
   manually divide it into pieces, and export the pieces to DXF's, and
   import those into UnrealEd.

   The source code is included for anyone willing to decypher it.

   Feel free to harass me at: jpreshin@uwaterloo.ca
