Monday, December 29, 2008

1.2 Released

Everything went better than expected, so I'm putting this out now before I start getting stuck into anything new again; who knows how long it would take if that happened.

It's a long list of changes, sorry about that. I'll try not to let it happen again.

  • Incorporated changes from 1.1 Emergency Releases.
  • Fixed bug where a spawned backpack could sometimes inherit the angles of the dead player/monster.
  • Added positional interpolation (r_lerporient, default 1).
  • Added frame interpolation (r_lerpframe, default 1).
  • Ported menu framework code.
  • Moved Options menu to framework.
  • Moved Main menu to framework.
  • Changed clear colour to black now that I no longer need to check for clearing.
  • Moved Single Player menu to framework.
  • Fixed centerprints so that positioning is consistent.
  • Fixed SCR_CenterPrint empty string bug.
  • Moved Help menu to framework.
  • Changed help menu so that it starts at page 1 if playing the registered version.
  • Reworked Quit menu as a SCR_ModalMessage.
  • Added last line of console output at bottom of screen for when menus are active (user feedback).
  • Fixed occasional bug where Windows keeps a file open lock on config.cfg even after it's been closed.
  • Fixed chase camera so it can never go inside (or through) a solid leaf.
  • Adjusted number of save games to infinite; removed name restrictions.
  • Moved save/load menus to framework.
  • Fixed all remaining chasecam clipping/noclipping problems.
  • Changed default m_boost value to 1.
  • Changed appearance of SCR_ModalMessage messages slightly (added "Confirm" header and "[Y/N]" prompt).
  • Fixed occasional DirectInput lockups/stalls.
  • Removed "no multi-threaded" restrictions from Direct3D startup.
  • Changed alias model bounding box cull and chasecam clip tests to per-frame bounding boxes.
  • Removed old sky warp and r_oldsky cvar.
  • Added Q2/etc style noclipping (was this in 1.1?)
  • Changed speed and direction of new sky warp to more accurately mimic old sky warp.
  • Removed surface subdivision from sky.
  • Removed brush model specific stuff from model_t struct.
  • Added struct header pointers for each model type to model_t struct.
  • Massive cleanup, restructuring and explanations in submodel setup.
  • Added fading of chase model when chasecam gets near it owing to geometry clipping.
  • Added translucent viewmodel when one has the ring.
  • Added translucent chase model when viewed from nearby.
  • Switched mipmap chain generation to manual as automatic doesn't work too well on some cards.
  • Restored HARDWARE_VERTEX_PROCESSING (need to test for lockups on NVIDIA).
  • Changed default scr_conspeed to 3000 and scr_printspeed to 20 (from 300 and 8).
  • Restored lightmap texture rectchange system (easier in D3D as top is 0 and it uses r and b, not w and h).
  • Left lightmap textures locked for the entire map (to save locking/unlocking per frame).
  • Removed glpoly_t from gl_model.h to gl_warp.cpp as that's the only place it's used any more.
  • Gave water and sky their own custom vertex structs.
  • Moved Multiplayer menu to framework.
  • Commenced moving Setup menu to framework.
  • Wrote a *real* textbox for "Hostname" and "Your Name".
  • Removed display of Help page 0 ("Ordering") from the registered version.
  • Fixed bug where the save menu would crash if there were no save games but was otherwise valid.
  • Removed IPX Code.
  • Restored r_wateralpha functionality (mimics stock GLQuake, no fancy changes).
  • Cvar-ized light animation interpolation (r_lerplightstyle, default 1).
  • Restored gl_flashblend 1 mode and made gl_flashbend an archive cvar (retained 0 as new default).
  • Added r_lightupdatefrequency cvar to control how many times per second lightmaps update (default 0 = always).
  • Added CDAudio_Stop to S_StopAllSounds.
  • Added DirectShow code for media playback for when no CD is present.
  • Added render to texture code for water warp updates.
  • Removed surface subdivision from water surfaces.
  • Replaced gl_warp_sin.h with internally generated sin table.
  • Finished render to texture for water surfs (we lose a few frames here but the improvement is worth it).
  • Expanded BSP light data to 3 component.
  • Removed interpolation from muzzleflashes on viewmodels.
  • Moved keybindings menu to framework.
  • Fixed FPS loss with render to texture.
  • Finished Multiplayer Setup Menu.
  • Switched cvars to static storage of name and string (code simplification).
  • Added more generally usable "Draw_TextBox" routine.
  • Fixed bug in Save/Load menu where this->CurrentOption == NULL would crash on an unhandled key.
  • Added sound/cdtracks as an optional music directory (first preference, fallback on music if not present).
  • Allowed spaces or non-alphanumeric characters in save/load names.
  • Added detection of invalid windows filename chars in save/load names.
  • Added con_lineheight cvar to control height of console lines (default 8, same as classic Quake).
  • Added external texture loader (not linked in to internal loader yet).
  • Added mapshot drawing system.
  • Added external BSP texture support: link, dds, tga, bmp, png and jpg formats supported.
  • Adjusted default vid_gamma to 1.0 (consistency between external and native textures).
  • Added scr_screenshotformat cvar (default tga), supports tga, bmp, png, jpg and dds.
  • Finished mapshot writing.
  • Cvar-ized screenshot directory (scr_screenshotdir, default "screenshot") - not as robust as it could be, don't try anything fancy!
  • Cvar-ized external textures directory (gl_texturedir, default "textures") - see comment above.
  • Cvar-ized save directory (host_savedir, default "save") - see comment above.
  • Added hardware gamma control - uses old v_gamma cvar, works with -gamma cmdline (which is still retained).
  • Moved TCP/IP - new game menu to framework.
  • Fixed bug where the game would crash if a menu with no options at all was entered.
  • Moved TCP/IP - join game menu to framework.
  • Fixed bug where the game would crash on a key other than ESC in a menu with no options.
  • Reverted alias models to whole model bbox cull tests (reliability).
  • Moved game options menu to framework.
  • Added deathmatch 0, coop 0 and teamplay 0 to load command.
  • Added Input Options menu.
  • Added Effects Options menu.
  • Added Chase Camera Options menu.
  • Added Content Directories menu.
  • Made cvars self-registering and cmds self-adding.
  • Added initial load of configs (setting cvars only) to get correct values in before anything else comes up.
  • Increased several internal limits to match those of FitzQuake.
  • Tested Marcher Fortress; ensured load and correct appearance.
  • Fixed textbox startup when the length of the initial string was > 16.
  • Fixed bug in textbox where holding down shift to type a capital letter would trigger the "deny" sound.
  • Removed limit on number of static entities.
  • Verified we can at least *load* cavetest2. ;D
  • Removed software gamma calculations (WinQuake legacy).
  • Added independent control of red/green/blue gamma (in addition to master control): r_gamma/g_gamma/b_gamma, defaults 1.
  • Removed scr_copytop, scr_copyeverything, scr_fullupdate, sb_updates, Sbar_Changed (software legacy).
  • Removed limit on number of particles; initial 4096, extra 2048 as required, cleared between maps.
  • Fixed unsigned short to short translations in BSP loading.
  • Fixed bug where a desktop resolution with 800 height would give a mode with 768 height as a valid windowed mode.
  • Fixed bug where the vid_mode cvar was not being set correctly (at all, actually!) on startup.
  • Fixed bug where dlights shine on backfacing surfs.
  • Added smoother transitions between r_viewleafs with dfferent contents types.
  • Moved "Search for Local Games" to framework.
  • Added support for reading vid_mode from the configs and setting the correct mode according to that.
  • Added r_lockpvs cvar for locking PVS to the current viewleaf; map development aid, default 0.
  • Fixed bug where Alt-Tabbing back to a fullscreen mode would leave the screen garbled (viewport code needs a huge cleanup!)
  • Finished porting of menus to framework.
  • Fully removed gl_ztrick; it was *not* a happy bunny.
  • Cleaned up the mess I had made of viewports.
  • Fixed loss of LOD with warp update render to texture (more FPS loss as a result).
  • Restored r_speeds 1 wpoly counter, left broken epoly counter (consistency with previous versions & other engines).
Where to next? There are some obvious unfinished items, even given the list above. External textures need to be worked over to accomodate all the wacky stuff Quake does, I still haven't added proper texture flushing, I still don't have fullbright colours, I want to do some serious work on the filesystem code, and as I think I've earned a treat I'm also going to do some input code!

Even some of the new stuff needs completing; I have the ability to display mapshots in the server list menu, but I don't do so, for example.

Plus more bugfixes as the reports come rolling in, of course!

1 comments:

Chris said...

I'm using a GF6800 - wateralpha doesn't seem to work properly (only on teleporter surfaces rather than water. Some HOM type artefacts on thin vertical surfaces (check apertures to water below in floor of easy hall in start map). Image quality otherwise is superb and speed has jumped another 20 - 40 frames at 1920x1200.

Just superb!

Cheers, kempie