Priority Levels: I > R > M (I, R required to be complete before full release) Program: P=PC Wolf3D, M=Mac Wolf3D, B=Both P R - create a better "read direction" for menu movement P M - convert while (Keyboard[sc_Blah]) IN_CheckAck() to IN_WaitKeyDown(sc.. P I - finish changing the game movement to the new style P R - update input menus/config P M - cleanup/rewrite menu code P R - update sound menus/config P I - rewrite sound code: get rid of packed structs, clean up thread stuff P I - fix issues (speed, hacks) with variable screen size P M - BSP trees (or something similar), then OpenGL support M R - port menu code (after fixed up) M R - add sound M M - complete/fix opengl mode M M - add music (would need to RE the sound lib) B I - complete savegame, config formats M I - add SDL B R - decide if to keep SVGA/X11 targets B M - configure scripts? (autoconf/automake/etc) B M - port to dreamcast? B M - add compression to savegames/config B I - play through game (w/ sound and music) to make sure things work B M - use stdint.h where appropiate B M - finish serializing reads/writes, endian issues. - PC version should be OK for loading -- savegames not yet tested. P M - fix raycast bug where at certain points you can see through corners B I - merge other TODO lists into this list B M - use something like config file or getenv to point at data directories P I - finish handling/mapping for all keys in sys. specific code B I - add mouse support B M - add joystick/gamepad support P I - fill in the new fizzlefade function P I - add sound "emulation" to the necessary targets so WaitSoundDone works P R - change boolean SD_PlaySound to void SD_PlaySound P M - position pushwall sounds P M - id_ca.c cache code: fix/readd/rewrite the "garbage collection" system P M - rewrite id_ca.c: uniform memory handling system P M - either move id_heads into wl_def or split header files apart P R - rewrite fmopl.c to avoid licensing issues (or provide as a separate patch? may not be advisable since id owns copyright on wolf code) P R - remove CA_LoadAllSounds now that the sound code does everything B I - README, etc. B M - Code Documentation P M - rename visable to visible B M - change the commandline handling (use something like getopt?) P R - rewrite RLEWexpand to not use words B M - openal support B I - when window loses focus, it should clear the keys B M - [X11] use the data in the visual/image for formatting colors Complete: P I - fix or remove fizzle fade - Removed [nice, but very hacky effect] ------------------------------------------------------------------------------ * what exactly is the point of all the DigiMode checks in wl_act2.c? * add ylookup? * remove farmapylookup? * would be nice if Quit() used vsnprintf, etc * actor walking through door is drawn in front of door: near end of E1M1 for example (is this reproducible?) * use static and const where appropriate * clean up header files, especially wl_def.h, where some declarations aren't in the right place * remove check for debugmode? * check filehandling (ex, file missing, bad file type, and such) PlayDemoFromFile specifically * deathcam went by too fast, same with the spear of destiny ending animation - probably due to waiting for sounds to finish * split wl_draw into two files (draw independent, draw dependent) ------------------------------------------------------------------------------ void ControlMovement(objtype *ob) (wl_agent.c) void UpdateInput() / void PollControls() (wl_play.c) ------------------------------------------------------------------------------ Control Menu: * TODO Sound Menu: * Digital Sound Effects: - On [PCM] - Off * Sound Effects - On [AdLib/OPL2] - PC Speaker? - Off * Music: - On [AdLib/OPL2] - Off ------------------------------------------------------------------------------ Where to Look for/Save Files: ~/.wolf3d cwd /usr/games/share $ENVIRONMENT_VARIABLE Need to establish where to look, order to look, strict/lenient loading (load all files from the determined game directory, or look in order for each file), and where to put savegames and config files. ------------------------------------------------------------------------------ Save game header: 8 bytes: WOLF3D, 0, 0 4 bytes: SAV, 0 4 bytes: version (integer) 4 bytes: game type (WL1, WL6, SDM, SOD) 4 bytes: seconds past 1970 (time(NULL)) 4 bytes: padding 4 bytes: checksum for the data (after text string) 32 bytes: text string Version 0xFFFFFFFF Data: (Unofficial Save Game data) Version 0x00000000 Data: (Official) Version 0x00000001 Data: (Official) --- Config header: 8 bytes: WOLF3D, 0, 0 4 bytes: CFG, 0 4 bytes: version (integer) 4 bytes: game type (WL1, WL6, SDM, SOD) 4 bytes: seconds past 1970 (time(NULL)) 4 bytes: padding 4 bytes: checksum for the data Version 0xFFFFFFFF Data: (Unofficial Config data) Version 0x00000000 Data: (Official) Version 0x00000001 Data: (Official)