Hexen II: Hammer of Thyrion (uhexen2)
Release Notes for version 1.5.0 (Sep. 15, 2011.)
================================================

Changes since the uhexen2-1.4.3 release:

* bumped the hexen2 engine version to 1.23, and hexenworld engine version
  to 0.23. bumped the gamecode version to 1.20.
* added support for ogg, mp3 and wav external music files to be played
  instead of the original midi files.
* added interface for music streams to the sound layer, dropped SDL_mixer
  dependency. many changes in sound and midi layer.  imported libtimidity
  into the source tree and applied several fixes.
* sound: changed internal driver interface to provide a better chance of
  engine startup with sound, especially for linux (unix) users.
* unix midi: reimplemented through the new music streams interface using
  timidity.
* windows midi: ignore midi hardware volume adjustment capability under
  windows vista/7 which fixes music volume control messing with the main
  volume.
* fixed a bug in multiple zones management, which wasn't easy to hit but
  was deadly when it was hit.
* fixed an old obscure game load/save corruption bug.
* fixed an old load bug where items dropped by monsters not being visible
  or getting lost upon saving and loading the game.
* fixed an old load bug where prize artifacts in the Temple of Mars not
  being visible or getting lost upon saving and loading the game or by
  changing the level and reentering.
* fixed an old load bug where killed monsters didn't respawn in nightmare
  difficulty in the mission pack upon saving and loading the game or by
  changing the level and reentering.
* software renderer (C-only): fixed a segmentation fault with Crusader's
  ice mace.
* software renderer: fixed crashes at high resolutions with r_waterwarp
  enabled.
* added new cvar sys_throttle in order to throttle the game loop just a
  little bit and run cooler on new fast systems. the default sys_throttle
  value is 0.02, acceptable values are between 0 and 1. changing it to 0
  disables throttling.
* opengl: fixed overlapping flickering textures, i.e. the infamous brush
  model Z-fighting. the fix is controlled by gl_zfix: default value is 1
  (enabled). setting it to 0 disables the fix and brings back the old
  behaviour.
* opengl: always use GL_LINEAR as lightmap filter. made gl_texturemode
  command not affect lightmaps.
* opengl: fixed an issue in net games where joining players would appear
  untextured (bug #3288081).
* opengl: updated code to use glGenTextures().
* joystick windows: added support for sixth joystick axis for up movement
  controlled by joyupthreshold and joyupsensitivity.
* fixed hexenworld server issue which used to crash servers upon running
  the romeric5 (Temple of Mars) map, which now loads fine.
* fixed h2ded (hexen2 dedicated server) bug that the swords on the weapon
  racks in the demo2 and the village1 levels would be placed incorrectly
  (bug #3344613).
* hexenworld server: fixed segmentation fault in case of bad pointers in
  NUM_FOR_EDICT()
* fixed HexenC bug where, if there were a summoned imp around, a blinked
  away wizard wouldn't reappear even after imp went away (bug #3314808).
* fixed a HexenC bug where the summoned imp didn't pick the Egypt snake
  boss as an enemy (bug #3314810).
* improved soul spheres' HexenC code.
* fixed a HexenC where medusa's gaze attack sound would persist when she
  is dead.
* fixed an Eidolon/imp HexenC bug which used to render Eidolon idle.
* fixed a HexenC bug which would prevent a yakman from appearing during
  the 'Trial of Strength' in the 'Temple of Phurbu' (tibet7) level of the
  mission pack, rendering the level not completable (bug #1112533).
* fixed a mission pack HexenC bug where a pentacle monster in the tibet1
  map became invulnerable when it got crushed by a door.
* fixed a wheel of ages message to report 360 degrees instead of 30 in the
  egypt2 map.
* fixed a HexenC bug which might prevent Eidolon to land.
* fixed an Eidolon HexenC bug which might prevent the finale screen to
  trigger.
* fixed a HexenC bug where werepanthers became "undead" when an assassin
  killed them by her bombs.
* fixed a mission pack HexenC bug which used to prevent the finale screen
  to trigger if Praevus were killed too quickly.
* handled several map quirks thanks to careful works by Thomas Freundt
  and Keith Rozett.
* fixed trigger_crosslevel problem with spawnflag 8 which used to prevent
  one of the prizes in Temple of Mars to appear.
* removed the ugly hack of reducing teleport push speed to 225 in order
  to overcome the problem of reaching the Cathedral's balcony and the holy
  cross, and added a modified entities file for the Cathedral map instead.
* added support for external entity file loading which makes it easy to
  handle map quirks.  ent files are accepted only if they come from the
  same game directory as the map itself or from a searchpath with a higher
  priority. external entities loading is controlled by external_ents cvar:
  default value is 1 (enabled). setting to 0 disables external entities.
* revised lit file loading. lit files are now accepted only if they come
  from the same game directory as the map itself or from a searchpath with
  a higher priority.
* added new h2patch tool, an easy to use xdelta3-based standalone pak patch
  tool for purposes of updating to hexen2 v1.11 data files. updated the
  gtk-launcher's patch facility to use the same backend.
* utils, hcc: fixed broken switch statement compilation when there is an
  implicit break in the last case.
* utils, dcc: fixed a wrong decompilation of an "if" opcode into a "while";
  some source code revision.
* utils, hcc: dropped support for the old version of hcc tool.
* tested compilation using Visual Studio 2010.
* source directory layout reworked, repository moved from cvs to svn.


Changes since uhexen2-1.4.3 mostly during the unreleased 1.4.4-beta cycle:

* fixed the broken software renderer binaries from C++ compilers with x86
  assembly enabled (do not use the bool keyword of C++).
* compilations using the new gcc-4.4, 4.5 and 4.6 versions are tested and
  supported.
* added support for 64 bit windows versions (x64).
* added support for mingw-w64 compilers.
* added support for Microsoft Visual Studio 2005 and Visual Studio 2008.
* filesystem: fixed an oversight with builds without user directories, where
  the "-basedir" command line argument failed to change the internal userdir
  variables.
* fixed stuffcmds so that arguments to commands can have '-' or '+' within
  their names.  A command like "hexen2 +map mymap-01" works properly now.
* increased default zone memory size to 384kb.
* fixed a rare segmentation fault with certain command line arguments (bug
  was introduced sometime between version 1.3.0 and 1.4.0).
* fixed a problem in sound effects code where some teleportation sounds might
  have got lost.
* alsa audio: added workarouds for better behavior on some linux setups.
* hexen2 client: pause/resume midi (background music) along with cdaudio upon
  pause message.
* windows cdaudio: added -cddev as a new command line option for choosing the
  cdrom drive to use.  syntax: -cddev E
* windows cdaudio: fixed MCI errors when resuming the last track of a cdrom.
* net: made the socket api usage compatible with windows especially with
  relation to 64 bit windows.
* net (hexen2): fixed BSD and Mac OS X socket api usage.
* opengl: reworked text and HUD scaling menu option.
* opengl: fixed an issue that changing resolution from within the game might
  crash on Windows Vista.
* software renderer: fixed a long standing stack corruption bug which used
  to cause alias models not to be drawn at all.
* stricter checking on the values pulled out of .wav file chunk headers.
* fixed a rare game crash when battling bosses with assassin class, using
  the tome of power and launching at the enemy a lot of projectiles.
* renamed model_t to qmodel_t in order to avoid conflicts on solaris.
* fixed the "mirrored prints" problem of hexen2 console at high resolutions.
* fixed the colored prints of hexenworld console.
* fixed 'array going out-of-bounds' (utils/map.c) and bogus 'maybe used
  uninitialized' warnings (sbar.c) from gcc-4.3.
* fixes to the SVGALib driver. it is functional now, both for hexen2 and for
  hexenworld clients.
* fixed bug #2176384: in windowed mode, when you save using the menus, the
  game used to quit the menu without grabbing the mouse properly.
* windows mouse: fixed behavior upon minimize/restore in windowed mode.
* slightly increased the buffersize for sdl audio. made it to print a little
  more detailed info at startup.
* fixed hexenworld client message parser so that midi and cdaudio don't play
  at the same time.
* launcher, patching: rewritten the inter-threads log printing and fixed the
  erratic crashes on smp systems. launcher version is 1.0.5 now.
* hexenworld master server: unknown packets are properly output as hexdump.
  hwmaster version is 1.2.6 now.
* other minor fixes.
* 3dfx gamma hacks are disabled by default at compile time (see the Makefile).
* killed compatibility with user directories from HoT-1.4.0 and earlier which
  didn't operate with a data1 subdirectory. they are ancient history now.
* added initial support for standalone free contents (mods) as an extra patch.
* utils, jsh2color: worked around a stack corruption resulting in crashes due
  to the code's way of dealing with TEX_SPECIAL cases.
* utils, lmp2pcx: Tweaked and documented palette file usage, allowed the
  embedded palette again.
* utils, qbsp: accept more than one wad file specified in the value of the
  "wad" key. the wad file names must be separated by a semicolon. spaces are
  allowed in the file names. quoted paths aren't allowed.
* utils, qbsp: the absolute paths in wad values are not touched, ie. the paths
  beginning with a '/' on unix or with a drive specifying string like
  "C:\foo\bar.wad" on windows. all other values with no path information or
  relative path information are prefixed with the project path. this fixes the
  issues reported for qbsp usage from within worldcraft.
* added back some unused code for future reference.  removed some truly dead
  code.

