ChangeLog:
If anyone is interested, an incremental history of the sources can be found HERE.

2005-03-24 (CVS):
  • simplified window title creation in launcher
  • fixed a harmless typo in launcher for correctness' sake

2005-03-19 (CVS):
  • added back the md5sum data for the data1/pak?.pak files to the README
  • imported the utility sources to the CVS. how I forgot doing that for months is a mystery
  • merged an H2MP 1.12-1.12a axtail patch to the gamecode which has been missing in the CVS somehow

2005-03-14 (CVS):
  • small sbar resizing fix in software mode (from Steven)
  • added back console video mode reporting. also removed the non-functional findbpp
  • updated the build_all scripts
  • documentation update

2005-03-08 (CVS):
  • fixed an oversight in reinit_music which resulted in a
    needless restart of midi music upon pressing Esc twice

1.2.4: Changes since HoT 1.2.3 (2005-03-06):
  • Release 1.2.4-final.
  • Added bsd includes to snd_oss.c
  • Added net sanity checks (from Steven)
  • Moved reinit_music to menu.c where it belongs
  • Fixed reinit_music so that it works for the F4 key as well
  • Don't mess with music volume on every frame update, it's just silly

2005-03-05 (CVS, 1.2.4-rc5):
  • OSS (and ALSA): Try to use what frequency is actually set: I first naively thought that requested-provided frequency mismatches wouldn't happen, but I got one weird oss report which includes this case. Let's see what this does now...
  • OSS: if failures are hit after mmaping shm->buffer, munmap it before quitting

2005-03-03 (CVS, 1.2.4-rc4):
  • really final rc for 1.2.4 ;)
  • fixed and activated munmap of shm->buffer for snd_oss.c
  • commented-out shm->gamealive thing which serves nothing
  • exact syncing between hexen2 and hw versions of snd_dma.c
  • sys_unix.c cleanup: remove dead and/or win32 code
  • removed unreached return from main (it should have been 0, btw. from Steve)
  • increased MAX_OSPATH to 256 (from Steve)
  • Sys_Mkdir is now int. Its return code should be checked in other places too in future versions (from Steve).
  • Sys_GetUserdir now uses $HOME instead of the passwd struct (from Steve)
  • removed h2mp dependency from length check in Sys_GetUserdir, seems to serve no purpose (from Steve)
  • fixed hexenworld window caption for the software version
  • launcher: default option for sampling rate should be "default"
  • updated the rpm spec file for 1.2.4

2005-02-23 (CVS, 1.2.4-rc3):
  • final rc for 1.2.4.
  • killed hexenworld/cl_tent.c warning "statement with no effect". at last we decided that this guy intended |=, not &=
  • merged a bunch of hcode (gameplay) fixes/adjustments from Pa3PyX' sources which brings the gamecode version to 1.12g (see gamecode/README in the CVS for details.)

2005-02-20 (CVS, 1.2.4-rc2):
  • H2MP: Old mission option is now always enabled, removed my cmdline thing, killed the cvar m_oldmission; completely disabled the demoness for the old mission, killed my cvar m_demoness.
  • Sound: Now processing all command line options in snd_dma.c, S_Startup only, targets will do to its bidding first; don't die immediately, try setting alternative hw parameters; (fwiw, snd_oss.c now applies all hardware settings before mmaping the buffer); added a check for requested and set rate mismatches which fails S_Startup if found (found it in alsa examples, is it necessary at all? commented out for now.)
  • OpenGL: Added comments on gl_picmip scale-down and ugly help screens (Steven)
  • H2/HW: Added the new sound options to the help messages
  • Documents: Updated the README files
  • Launcher: New version 0.5.0: added all sound cmdline options (sampling rate, format, stereo); removed "disable joystick" option (not functional in the engine for ages); removed the "old mission" thing (already made always-enabled in the engine); changed Mission Pack checkbox into a radio button grouped with the others; added Hexen2 bot mods as extra game types similar to hexenworld game types; redesigned the interface: default is basic mode which displays the basic options necessary only, a new "More" button expands the interface to show more things; replaced the resolution slider with a combo; gtk-2 is default now, to build for gtk-1.2 type make GTK1=yes.

2005-02-15 (CVS, gamecode-1.12f)
  • hexenworld hcode updates:
  • gamecode-1.12f
  • added stubs for the hexenworld missing boss-map functions. hwsv no longer crashes on maps rider1a, rider2c, romeric6, meso9 and eidolon.
  • updated the hexenworld boss files according to h2mp. although coop is broken as of now, maybe someone messes with these one day...
  • added a separate patch file which allows compiling boss maps into hwprogs.dat. this is not of much use, because coop seems broken...

2005-02-14 (CVS, 1.2.4-rc1):
  • preparing for 1.2.4
  • added ability to disable ALSA support at compile time
  • oss sound improvements (from the quakeforge project):
    - retry 3 times opening /dev/dsp
    - open O_NONBLOCK
    - check pagesize when mmaping
    - reset /dev/dsp when closing it (from the twilight project)
  • alsa sound improvements:
    - more error checking and detailed error reporting
    - replicate the order in quakeforge as much as possible
  • fixed mouse not being activated after connecting to a server in windowed mode for hexenworld (from Steve).

2005-02-12 (CVS):
  • added paranoid sound driver checks.
  • added 48000 to the alsa rate switch.
  • opengl cleanup: we can never reach CheckTextureExtensions(), we'll give up in GL_Init_Functions() if we don't like the gl_library.
  • added missing scrolltitle in the software version of VID_MenuDraw()

2005-02-11 (CVS):
  • kill sound/music messing in vid code: S_Init() and CDAudio_Init() are called AFTER VID_Init(), so this should be correct. See hexen2/host.c for reasoning on Win32.
  • kill dead win32 code in linux files

2005-02-09/10 (CVS):
  • hexenworld: kill some unused stuff and clean-up
  • some warnings clean-up

2005-02-08 (CVS):
  • console background transparency in Hexen2 (Draw_AlphaPic() from HW)
  • video modes clean-up:
    - removed cvar _vid_default_mode_win
    - removed all mode descriptions
    - removed all nummodes and VID_NumModes stuff
    - removed all VID_GetXXX and VID_DescXXX stuff
    - beautified the Video Modes menu screen a little
    - removed firstupdate things (vid_sdl.c, VID_Update())
    - ported missing parts of Steven's video/mouse stuff to HW
    - ported all of the above stuff to hexenworld, too
  • if0-out fxPalTexImage2D (we don't use it)
  • display the "meshing XXX" spam for developers only
  • tiny whitespace cleanup in in_sdl.c

2005-02-06 (CVS):
  • first sketchy update to the README files regarding the recent sound changes
  • activated Steven's menu / bgmtype change stuff for HW
  • moved cd_win.c and resource.h to ./win_stuff/
  • tiny makefiles cleanup
  • tiny log entries cleanup in snd_sdl.c, midi_sdl.c
  • removed a duplicate include from HW

2005-02-05 (CVS):
  • fixed silly copy+paste error in snd_alsa.c
  • fixed demo builds of the launcher
  • fastsqrt.cpp isn't used for ages, moved it to ./obsolete/
  • separated win32 and linux versions of midi files, too much mess otherwise
  • midi file paths cleanup: they should have been leftovers from times when gamedir and userdir were the same
  • killed Com_WriteFileFullPath(), not used anymore
  • replaced some Con_Printf() with Sys_Printf() in midi_sdl.c
  • added midi volume control (partially from Pa3PyX)
  • updated the midi stuff (volume ctrl, etc) for win32, too
  • fixed possible path length overflows in midi_sdl.c
  • killed Com_LoadHunkFile2() in hexen2 [from HexenWorld]
  • don't try extracting anything if no midi file is given
  • ported all midi changes from hexen2 to hexenworld
  • applied the HexenWorld specific changes to midi_sdl.c and enabled midi in the HW makefiles. who knows why it didn't work in aot before...

2005-02-04 (CVS):
  • made sdl_audio actually work (finally)
  • some snd_dma.c fixes from the tenebrae project
  • killed fakedma (simsound). one less thing to worry about
  • fixed cd music stops playing on volume change (reported by Julien Langer)
  • added actual cdrom volume control via CDROMVOLCTRL.
    cdrom isn't paused when the user volume is 0, anymore (should have been a trick to silence the cdrom before this control was present).
    BSD ioctls may be different, add conditionals for it one day...
  • added ALSA sound driver (from the quakeforge project)
  • we now build all all the sound drivers in and choose from the command line. oss is default
  • removed environment variable support from snd_oss.c
  • midi fixes for correctness' sake. it still fails with snd_sdl
  • merged small bits from the hw version of midi.c into h2
  • small whitespace cleanups in snd_oss.c, snd_mem.c, snd_dma.c, cd_linux.c. Heavy whitespace changes in midi.c, midi.h.
  • removed the noexit (keep me open) thing from launcher
  • removed forking from the launcher which now serves nothing
  • added sound driver selection to the launcher; v0.4.9

2005-02-01 (CVS):
  • fixed demos playing without models with -nosound arg
  • initial style-only sound code syncing between h2 and hw
  • sbar fixes from Pa3pyX' sources
  • added missing things to the makefiles
  • game launcher:
      - fixed fork/execv again (thanks Steve)
      - fixed args to execv (thanks again Steve)
      - added an option to not close the gui after launching
  • game hcode:
      - added Raven's Siege hcode
      - added+fixed map cycling code to hexenworld and siege
      - added Kor Skarn's further fixes to the siege code

2005-01-24 (CVS):
  • consolidate GL_LoadTexture functions
  • fix flush_textures decision which used to be always true
  • add sky alpha
  • gl filter changes

2005-01-23 (CVS):
  • Hexen2/HW: support for mouse buttons 4 and 5 (patch from Julien Langer) Let's see if this behaves for everybody.
  • Launcher: search for known hexenworld game-types and provide a list menu. v0.4.8.

1.2.3: Changes since HoT 1.2.2 (2005-01-20):
  • Release 1.2.3-final.

2005-01-18/19 (CVS, 1.2.3-rc8):
  • Hexen2/HW: Fixed userdirs to work correctly against the -game arg
  • added a "qboolean adduser" arg to COM_AddGameDir() (useful esp. in HW): com_userdir evolves gradually. every search path added has a consequence of additon of (multiple) unnecessary userpaths. avoid it where we can. (original aot also added the very same userdir multiple times)
  • changed all instances of "id1" to "data1"
  • Game Launcher (major changes, version 0.4.7):
  • hopefully fixed fork() / execv()
  • removed clumsy renderer selection, toggling ogl is enough
  • removed res-buttons, made a slider. more compact interface
  • made lower/upper bounds of the res-scale renderer-dependant
  • disallowed launching when proper binary is absent. added a statusbar which notifies the user about this
  • put the widgets to be played with remotely into proper structs for easier handling
  • removed pointless fiddlings with options upon other options
  • handled many demobuild thinkos
  • combined a bunch of on_ThisEvent() type callback functions which had been doing the same x = !x thing
  • fixed / cleaned-up config_file.c
  • removed already commented-out demoness-in-old-mission
  • removed gtk_widget_set_uposition(). we seem to do fine with gtk_fixed_put(). replaced gtk_widget_set_usize() with gtk_widget_set_size_request() for gtk2 builds
  • hacked the version number into the window title
  • much code clean-up/reorganization (apparently)

2005-01-13 (CVS, 1.2.3-rc7):
  • (Hopefully) Final rc.
  • Fix off-by-one error in demo ending message line calculation.
  • Fixed mouse behavior which was always broken in hexen2-linux. Middle-button is MOUSE2, right-button is MOUSE3, not vice versa (see SDL_mouse.h). The wheelmouse patch fixed this a little, but introduced a mouse2/mouse3 fight in in_sdl.c. It is fixed now.
    Also fixed the debug message about undefined mouse buttons and did some syncing between H2 and HW versions of input files.
  • Misc cleanups (nitpicking/polishing).

2005-01-08 (CVS, 1.2.3-rc6):
  • don't die on cache mismatch, delete and and reload the new texture
  • slight gl clean-ups.

2005-01-07 (CVS, 1.2.3-rc5):
  • H2/HW: _windowed_mouse default is 1 in gl mode, too.
  • H2: bind Alt+Enter combination to Steven's stuff for fullscreen-windowed toggling

2005-01-03 (CVS, 1.2.3-rc4):
  • HW: gl_ztrick disabled by default for hexenworld, too
  • Also compiled against glibc-2.2 with gcc-2.96 (on rh-7.3) and included properly in the installer.
  • Fixed a compilation error in case of gcc-2.96

2005-01-02 (CVS, 1.2.3-rc3):
  • Retired AoT, aot and .aot: Change userdir (AOT_USERDIR) to .hexen2 (for the demo, it's .hexen2demo)
  • Added clarifications about network-compatibility in the docs.
  • Code clean-up in Hexen2 and Launcher. Big clean-up in Hexenworld.

2004-12-29 (CVS, 1.2.3-rc2):
  • Launcher: Some usability tweaks. Removed the mouse option, added the disable networking option.
  • Hexen2: Fullscreen/Windowed mode is now switchable. Seems to work good. (from Steven).
  • Hexen2: Mouse can now be disabled for fullscreen modes (from Steven).
  • HexenWorld Client: Merge some Hexen2 changes:
    o Fix the fire attacks drawing lines across the screen
    o Don't print gl_extensions which spams the console
    o Partially merge Steven's mouse tweaks from 2004-12-29.
2004-12-28 (CVS):
  • Fixed gameplay issue: Holy item in the Cathedral balcony not reachable (automatic install using the installer).
  • Fixed (mostly) gameplay issue: Eidolon loses hostility under certain conditions (automatic install using the installer).
  • Fixed gameplay issue: Eidolon fails landing (automatic install using the installer).
  • Prepared an installer (using loki_setup tools from CVS /  2004-12-26).
  • The Launcher works fine with GTK2 now.
  • Using redhat rpm style arch flags ( -march=i386 -mcpu=i686 ).
  • Fixed textures going AWOL in GL mode upon loading savegames many times. This used to result in white info-plaques, for instance (adapted from pa3pyx).
  • The "GL GLOWS" menu entry is fixed. It now controls gl_other_glows, too.
  • Fixed the gl_other_glows option not being written into config.cfg
  • Previous Weapon entry added to the Customize Controls menu.
  • Removed second arg from the function EmitSkyPolys.
  • Use glGetIntegerv to detect maximum supported texture size, not vendor string.
  • gl_max_size is not a cvar anymore. Also killed cvar gl_nobind.
  • Merge newer snd_dma code from HexenWorld to Hexen2.
  • Intermission screens now drawn fullscreen (from pa3pyx).
    This includes the help menu screen where the fonts seemed unreadably small.
  • Wheelmouse support is added.
  • Removed console spamming code (gl_extensions, unbinding files, etc.)

1.2.2: Changes since HoT 1.2.1:
  • Launcher is fully functional and works fine with fullscreen opengl modes.
  • Fixed fire attacks of Demoness and Praevus drawing lines across the screen.
  • The annoying ".dynamic" extensions are removed from the binary names.
  • HexenWorld: dlsym'ed all calls to GL functions with SDL_GL_GetProcAddress.
  • Made the music automatically restart when changed in the options menu.
  • Heapsize is now 32768 default
  • The final splash screens now centre the messages properly.
  • Added an experimental SDL sound driver. Very buggy for now.
    (We acept patches ;)
  • Mouse grab in window modes, released with menus, pause and console.
    Mouse can be bound in the Options menu in window mode. "-nomouse" option works in window mode.

1.2.1: Changes since AoT 1.2.0:
  • New menu items for GL Glow, Chase mode, Draw Shadows.
  • GL glow patch from jshexen2.
  • Interactive video modes in software game disabled.
  • Video Modes menu now displays help message.
  • Height values corresponding to --width are properly added.
  • Screen sizes are selectable with "-width" and "-height" options, now. The "-mode" cmdline arg is removed.
  • Proper fullscreen mode(s) for OpenGL.
  • Two general overflow bug-fixes from pa3pyx.
  • BIG code cleanup including retiring some unused files, retiring old opengl files, killing many compiler warnings, etc.
  • A range checking bug is fixed along with the No Boss bug.
  • "No Boss" bug in Dan's original linux port fixed: Hexen2 loads progs2.dat along with progs.dat, as it should, now.