
TODO
====

>> QSAVETEX: delete output wad on error

+  get more games working (Heretic, Hexen etc)

+  more themes for DOOM (Urban, Hell)

+  support for Traps, Cages, Secrets, Powerups

+  add in more scenery: lamps, computers etc


-  implement more of Chris's and Johnny's boss maps

-  rework Build_small_exit to only use a single transform,

-  BUG: items occasionally appear on skyfences
   - finding small spots ignores sideway extents (thick[])

-  BUG: outdoor bars can sometimes be jumped over.
   --> make them higher _or_ another switch to lower them.

?  use 'xxx_t' instead of 'xxx_w' in skin tables


CSG CODE:

!!!! DOOM: build sidedefs/linedefs in memory !!!!

!!  proper quantization, remove degenerate segments / brushes 

!!  do a proper face-creation pass (merge_face_c list
    in each merge_segment_c ?) and get proper brush
    and area_vert references.

    Hence remove the CSG2_FindXXX rubbish.

!!  DOOM: fix y_offset values

+   DOOM: merge linedefs where possible


Quake II:
-  need to store wall brushes into a big list (qLeaf_c)
   and "split" them with Split_XY (if purely on one side,
   move to that side, otherwise keep in both sides).

   when get to solid wall leaf, keep the ones that match
   that wall (i.e. not completely in front of wall).

?  use cluster=-1 for SOLID leafs


Quakey:
+  merge Q#_CreateEntities into a common function

-  dface_t == dface2_t, move into common ??

q1_nodes:
  -  floor_leaf --> leaf
  ?? move floor/ceiling faces into leaf.faces (instead of leaf.floor)


SKIN TABLE FIELDS

1) use a plain word for the main part of something.

   Examples: 'wall', 'floor', 'side', 'switch',
             'beam', 'trim',  'base', 'door'.

2) the '_f' suffix on the main word can be used to provide
   a different floor or ceiling material (when the main word
   refers to the side texture).

3) the '_t' suffix can provide a different side texture
   when the main word refers to a floor or ceiling.

4) the '_c' suffix should NOT be used for normal DOOM,
   it is reserved for setting the ceiling material for
   rare cases when it could be different from the floor
   material -- e.g. in a QUAKE prefab.

5) the '_ox' '_oy' '_peg' suffixes provide x_offset,
   y_offset and pegging values.  When pegging is true,
   an absent y_offset value will be set to 0.

6) the '_w' '_h' '_d' suffixes are reserved for setting
   width / height (vertical) / depth values.


