o = todo X = done ? = maybe but not likely M = more testing I = in progress W = waiting on other work M it seems possible to crash a QF server still - need to fix this! M Scitech MGL used in win32 is screwed - dump it and use SDL I GL is still way too slow I Client side QuakeC. I mingw cross compiling I merge nq and qw code bases W fix skybox/dome vis problems (workable solution found, needs new renderer) o ogg support o It's possible to stick on some obtuse-angled corners qwsv 2.3x didn't o better server control of certain cvars o triggers (f_respawn, f_death, f_took; cl_triggers) o software PCXs don't work in X11 at least if you're using 16/24/32 color o stateful console (eg, rcon mode, chat mode, normal command mode...) o menu rewrite o scripted hud o doublesize modes (eg, render in 320x240 but display in 640x480) ? more direct intra-team comms (eg, talk to offense or defense directly) ? Draw_Pic and friends need a cleanup in GL at least ? console commands to see a user, ignore talk from them, etc ? improved crosshairs (custom file, 32 bit for GL, etc) ? software targets should mix color at 16/16 or 24/32 color ? Draw_Pic and other tex draw functions should use local palettes ? wad loader should load wad3 and fall back to wad2 if necessary ? better control over client console logging ? ban reasons and expire times Future directory tree: quakeforge +--- tools useful/needed tools | +--- Forge Forge.app map/model/everything editor | +--- cvs2cl | +--- gas2masm | +--- pak massively enhanced pak tool | \--- qfgc QuakeForge Gamecode Compiler +--- include API definitions for all subsystems +--- nq Non-common NQ code +--- qw Non-common QW code \--- libs common code libs +--- audio | +--- cd | +--- recording | +--- renderer 3D audio rendering | | +--- soft Software 3D spatialization | | \--- openal Passing the buck to OpenAL | \--- targets Raw sound I/O | +--- null No raw output (none or OpenAL) | +--- alsa ALSA | +--- oss OSS or kernel sound | +--- dsound MS DirectSound | \--- sdl SDL (gack) output +--- filesystem Filesystem code | | (the code for normal fs is also here) | +--- pakfile Quake Pakfiles | +--- qfp QuakeForge Package +--- formats | +--- bsp29 Quake BSP read/write | +--- bsp66 QuakeForge native BSP read/write | +--- mdl Quake model read/write | +--- md2 Quake2 model read/write [would be nice] | +--- qfm QuakeForge native model format | \--- textures PCX, QFS (multi-skins), TGA +--- gamecode Progs interpreter (core) | +--- client Client bindings | \--- server Server bindings +--- network Network code (like netchan, but sane) | +--- transport Low-level protocols (UDP, TCP+UDP, etc.) | +--- netquake Quake's wire protocol | +--- null Null protocol, for single-player | \--- quakeworld QuakeWorld's wire protocol +--- system Platform-dependant system lib | | (raw IO/filesystem/dlopen code) | +--- null Portability aid, a skeleton system lib | +--- unix POSIX stuff | \--- win32 Win32 system lib +--- util Utility library | contents: Commands, Cvars, Quake-format scripts, | property lists, console parsing/formatting/output, the | heap and zones. +--- video Video input and output | +--- renderer 3D video rendering | | +--- soft Software 3D rendering | | \--- opengl Passing the buck to OpenGL | \--- targets | +--- null Portability aid, skeleton | +--- console Non-graphical, "readline" input | | (also needs old-style stuff for | | dumb-ass systems/terminals) | +--- sdl | +--- svgalib | +--- win32 | \--- x11 \--- world 3D layout engine (includes objects) Talks to the sound and video renderers to output frames