Project Twilight todo list
--------------------------

Stuff /required/ for 0.2.0:
  - Menu: (Listed in order of priority.)
    * Get the renderer side of the menu code to handle menus larger then
      the screen.
    * Get the graphics options cleaned up. (Add grey tweaking support!)
    * Key binding menu support.
    * Saved games support.
    * Server browser support.


Bugs we know about:
  - Some of the particles need tweaking.

  - Quake never checked BSPs very well, a bad one can crash the engine.
    (Need some example bad BSPs.)

  Driver related quirks:
  - Need a 3dfx quirk for limiting vertex array size.  We need the
    output of the OpenGL strings in Win32 for this.
    (Downgraded from RC, if nobody can give us the bloody strings,
     nobody will notice the crash, /if/ it still happens.)
  - 3dfxvgl.dll does not work with Twilight even though it should.
    Forest can try a minimal example SDL app which binds OpenGL
    dynamically if we get him one.  Workaround: copy 3dfxvgl.dll to
    opengl32.dll in your Quake directory.  NOTE, if you don't have to do
    this and Twilight works, let us know, we are having trouble
    identifying this problem.
  - Win32 ATI Radeon: Leaving the game via alt-tab when fullscreen
    leaves sound looping.  Trying to return to the game has no effect.
    This only happens if playing the game, not if watching a demo;
    watching a demo and doing this works.
    (Darkplaces does not have this problem, may be SDL related, very
     likely ATI related as well)
    (Reported by Dry-ice)


Stuff that isn't needed for 0.2, but would be nice:

  - Being able to restart the renderer would be useful.
  - clean up the menus, make sure all cvar graphics options
    are listed on the graphics options menu in both nq/qw
  - clean up the Cmd system
  - Merge QW server into QW client ala NQ
  - Build a separate dedicated server in NQ [LordHavoc]
  - switch to using specific-sized SDL variables for file accesses
  - Convert Cvars from an unsorted list to a hash
  - Use traceline to determine visibility (trace from eye to random places
    in entity bbox), with 1 second visibility timeout (if traceline
    succeeds, reset timeout to realtime + 1), this is as fast as pvs
    checking, and much more effective, use this in server and optionally
    client
  - Add back mirrors at some point
  - Rewrite the sound code so that it is possible to spit out a timed
    sound file which matches frame outputs (for recording videos)
  - JPEG screenshots
  - Nehahra support, total hackishness, *_weirdshit.c  =)
    + fog (as Cvars - ugh)
    + alpha brush/alias models (not trivial, speed hit)
    + EF_FULLBRIGHT (512) for models, generated from .fullbright on server
    + svc_showlmp (35) and svc_hidelmp (36)
    + svc_skybox (37)
    + TE_EXPLOSION3 (16)
    + TE_LIGHTNING4NEH (17)
    + EF_NODRAW (16, incompatible with QW)
    + RestoreGame QC callback on savegame load
    + Custom menus for mod/movie/both (GAH!)
    + nehx00-nehx19, cutscene Cvars
    + Old DP protocol for servers (hey, it's not even a hack!)
    + Scary bloated QSG protocols for movie (proto 250 or nehahra_demo Cvar)
    + Grenade trails for alpha -1 models should be different than normal, the
      movie has a custom trail for the General's cigar.  I shit you not.
    + Anything else?  List it here..
  - gl_colorlights can/should be made to work without +set
  - Transfusion support (Formerly BloodBath)
    + Custom sbar
    + Custom keybindings
    + builtin to register Cvars
    + Transparency in brush models (windows)
    + Targa loading for lmps (main menu)
    + Sprite orientation fixes
  - Option to use classic-looking particles?  (slow!)
