Hexen II: Hammer of Thyrion

Development Progress	:
---------------------------

2006-10-30 / 31 (1.4.1-final, last minute fixes):
    * quick fixes for killing some warnings coming up during the
      compilation of the utilities on x86_64
    * hexenc fixes: cleaned up and tweaked hexenworld and siege map cycling.
      fixed hexen2 and hexenworld server crashes upon deathmatch level change
      in cases of a custom map being run and there is no map cycling. mission
      pack actually didn't used to crash but it always failed changing into
      a new level. it is now fixed, as well.
    * since version 1.11 of hexen2 demo already contains the demo3 level and
      it also has necessary stuff for running the hexenworld dm maps, added
      demo3 and the hw dm maps to FindDMLevel(). Similarly changed the hexen2
      and the mission pack versions.
    * added instructions for setting up map cycling to the hexenworld server
      documentation.
    * updated gamecode changelog / README.
    * added a hexenworld strings.txt file for the demo version (which doesn't
      contain a map cyling setup).

2006-10-26 (1.4.1-final):
    * removed irrelevant comment from hexen2/sv_effect.c.
    * for future reference, put the effects saving and loading functions
      back to hexenworld/sv_effect.c in commented out form. currently,
      saving and loading games not are supported in hexenworld.
    * small tweaks to Sys_FindFirstFile and Sys_FindNextFile.
    * made sure that Sys_FindFirstFile and Sys_FindNextFile doesn't return
      directory names.
    * Marked the snapshot of 2006-10-26 as 1.4.1-Final.

2006-10-20/24 (CVS):
    * pr_edict.c: sizeof(void *) is not the same everywhere. use fixed 32 bit
      sizes, as we do in pr_lex.c.
    * merged the bubble_sintable stuff of hexenworld gl_rlight to hexen2.
      the DLIGHT_BUBBLE_WEDGES definition is from tyrquake.
    * dcc: removed the memory members from the pr_info_t structure, disabled
      the ultra-cheap crc hack.
    * jsh2color: changed unnecessary long type usage to int in tex.c.
    * jsh2color: removed the unused tyrlog sources.
    * hexen2/keys.c: don't add a space after the last argument when binding
      keys.
    * menu.c: added proper offsets to the x arguments and removed the extra
      prefixing spaces from the option titles.
    * removed the unused host_basepal and host_colormap from h2ded.
    * fixed the load buffer flag of COM_LoadMallocFile. oops..
    * changed the heapsize limits of hexen2 dedicated server to match those
      of hexenworld server.
    * disabled Q_malloc usage in h2ded: by experimentation, surfedges and
      edges size mostly around 300 kb (in keep5 of the mission pack) and
      even with 8 mb of heap memory the server still runs fine. therefore
      no need for temporary stealing system memory.
    * tiny readability update to SV_SaveEffects.
    * sys_unix.c: exit code must be 1, not 0, if an unsupported SDL version
      is found.
    * gl_draw.c: defined MAX_GL_FILTERS and used it in Draw_TextureMode_f()
      instead of hardcoded values.
    * hexenworld net.c: fixed Sys_Error string formats for gethostname and
      getsockname failures.
    * hexenworld/sv_user.c: model download requests must be checked against
      "models/", not "progs/".
    * hexenworld/sv_main.c: small clean-up in Rcon_Validate().
    * sv_move.c, readability tidy-up and comments on the FL_HUNTFACE flag
      checking: this is a mission-pack-only thing for the monster type
      pentacles. we must double check against the hexenc code to find the
      correct solution in the future.
    * killed the warning about `enemy' might be used uninitialized in
      SV_movestep: it is only set if the noenemy argument of the function
      is false, therefore the warning seems bogus.
    * tiny clean-ups in callbacks.c and config_file.c of the launcher.
    * multiple coding style clean-ups.
    * updated some of the extra patches.
    * updated the list of known bugs.

2006-10-19 (CVS):
    * documentation updates.
    * added Sys_DPrintf: at present, its only user is the hexen2 dedicated
      server. further use of it may come with future versions.

2006-10-18 (CVS):
    * updated compile instructions for windows.
    * updated the rpm spec file for 1.4.1-final:
    - Merged the hexen2 and mission pack packages.
    - Added build option --without midi.
    - Added build option --without asm.
    - Disabled x86 assembly on non-intel cpus.
    - Do not build or package the software renderer versions when not
      using x86 assembly until we fix them properly.
    - Added build option --without alsa.

2006-10-16 (CVS, 1.4.1-rc4):
    * several fixes and tweaks to the standalone hexenworld utilities hwrcon,
      hwterm and hwmquery.
    * error_out clean-up in the hexenworld utilities.
    * added missing parentheses in BuildTree of huffman.c.
    * fixed wrong string format in huffman.c.
    * added (huffnode_t *) casts to malloc calls in huffman.c.
    * fixed wrong comparison in huffman debug code (was either a typo or
      missing parentheses).
    * fixed a buffer overflow vulnerability in hexenworld Huffman decompression.
    * whitespace cleanup in huffman.c.
    * marked the snapshot of 2006-10-16 as 1.4.1-rc4.

2006-10-15 (CVS):
    * updated the windows wave sound driver: made buffer allocation method a
      compile-time option: either allocate on the hunk, or use system memory.
      hunk allocation is still the default.
    * updated the alternative sdl sound driver patch: made buffer allocation
      method a compile-time option: either allocate on the hunk, or use system
      memory. system memory is default. changed the samples multiplier from 10
      to 8 .
    * added comments about the dma buffer allocation in the sound restart patch.

2006-10-14 (CVS):
    * misc typo fixes here and there.

2006-10-13 (CVS):
    * removed the const qualifiers from net_numdrivers and net_numlandrivers
      because vcr enabled builds manually set net_numdrivers to 1.

2006-10-12 (CVS):
    * made the hexen2 progs to work with demo version 1.11: the original
      demo version excluded the necromancer and crusader classes, but the
      later one didn't care and included them. changing some precache_model3
      and precache_sound3 to precache_model and precache_sound solves it.
      the pak file of 1.11 demo version already contains the necessary stuff.
    * made the hexenworld progs to work with demo version 1.11: Raven
      actually did all of the changes, but they seem to have missed
      changing the precache_model2 calls to precache_model in wp_art.hc
      which prevented crusader and necromancer classes to be played with.
    * ported the demo-1.11 precache compatibility changes from hexen2 to
      the mission pack. the mission pack actually has nothing to do with
      the demo version, but this is for the sake of the two trees being
      in sync as much as possible.
    * ported the demo-1.11 precache compatibility changes from hexenworld to
      siege. siege actually doesn't have much to do with the demo, but this
      is for the sake of the two trees being in sync as much as possible.
    * updated release notes for v1.4.1

2006-10-11 (CVS):
    * updated release notes for v1.4.1

2006-10-10 (CVS):
    * ensured the newline if truncation occurs in win32 version of Sys_Error.
    * removed the error timeout stuff from sys_unix.c. it was a left-over from
      sys_win.c.
    * added a Sys_mkdir_err() macro.
    * during init phase, we must error out if certain mkdir calls fail.
    * the in-game console is not ready during filesystem initialization,
      therefore changed the Con_Printf calls there to Sys_Printf.
    * removed an accidental extra semicolon at the end of Sys_DebugLog.
    * tiny sys.h clean-up.

2006-10-07 (CVS):
    * added an experimental patch for restarting sound among the exta patches.
    * free memory from unbound keys.

2006-10-06 (CVS):
    * updated the makefiles and preprocessor definitions:
    * moved the HAVE_GCC_4_0 definition/detection from the include makefiles
      to the actual makefiles,
    * building on windows now requires msys. removed the half-baked support
      for absences a unixish shell,
    * used a unified ifeq syntax in all of the Makefiles,
    * obsoleted _NEED_SDL_MIXER in favor of a new _MIDI_SDLMIXER definition,
    * updated sdl_inc.h and made it always include SDL_mixer.h according to
      the _MIDI_SDLMIXER definition. updated sdl version requirements,
    * removed the pointless NO_MIDIMUSIC definitions from Xcode files.

2006-10-05 (CVS):
    * exported lightmap_textures through glquake.h.
    * added resetting of lightmap_textures to Draw_ReInit(). its absence
      was a serious bug and used to cause texturing errors in hexenworld
      upon gamedir changes.
    * clean-ups about gamedir changing in CL_ParseServerData.
    * updated the sound driver availability macros. updated the
      makefiles with more options.

2006-10-04 (CVS):
    * hexenworld: removed an old comment in CL_ParseServerData.
    * hexenworld: remove old aliases upon gamedir changes.
    * updated Draw_ReInit() procedure.
    * win32 sound: used proper directx macroes and got rid of lpVtbl
      stuff for better readability.

2006-09-29 (CVS, 1.4.1-rc3):
    * made the alias command to display the value of the given alias
      instead of clearing it. added new commands unalias and unaliasall.
    * numerous sound clean-ups.
    * marked the snapshot of 2006-09-29 as 1.4.1-rc3.

2006-09-27 (CVS):
    * a lot of clean-ups in sound and midi files.
    * re-diff'ed the alternative sdl audio patch after the latest changes.
    * commented out some dead code in sv_move.c (SV_NewChaseDir).

2006-09-26 (CVS, 1.4.1-rc2):
    * updated the Xcode files for the recent header change.
    * added string array boundary checks in Host_SavegameComment().
    * marked the snapshot 2006-09-26 as 1.4.1-rc2 .

2006-09-25 (CVS):
    * removed a left-over definition from bothdefs.h.
    * shortened the Q_str*_err macro messages.
    * prevented string buffer overflows in PF_VarString().
    * made va() to cycle between 4 different static buffers. one
      function that uses va() can now be called from another without
      consequences. found in tyr-quake sources.
    * launcher cleanup: removed const qualifiers from string constants,
      removed char casts from formerly const string constants, added
      the -height to the launch arguments (not all resolutions have to
      be of 4:3 ratio), used short versions of some of the arguments,
      increased the version number to 0.8.0.
    * updated release notes for v1.4.1

2006-09-24 (CVS):
    * few more cosmetics and readability stuff (hwclient/net_wins.c,
      hwmaster/net.c, hwmaster/sys_main.c).
    * added missing com_argc checks (and fixed the incorrect ones)
      after several COM_CheckParm calls: SV_InitNet().
    * updated the license document from the gnu ftp.
    * made the make clean commands silent when building the rpms.
    * made the build scripts to exit at the first error encountered.
    * made the gcc version scripts to check its arguments and detect
      whether the given compiler command can be run. made them to work
      under solaris.
    * protected all headers against multiple inclusion.

2006-09-23 (CVS):
    * fixed shameful typoes in vid_sdl.c and gl_vidsdl.c
    * added a short summary to the OSS init success message
    * cosmetics and readability stuff (snd_oss.c)
    * cosmetics and readability stuff (gl_vidnt.c)
    * added missing com_argc checks (and fixed the incorrect ones)
      after several COM_CheckParm calls.
    * documentation updates.

2006-09-22 (CVS):
    * launcher: bound the gllibrary size to MAX_OSPATH instead of 256.
    * launcher: limited the length of text taken from the widget to the
      size of gllibrary. freed the temporary string.
    * launcher: limited the maximum length for the gllibrary entry to
      the size of gllibrary.

2006-09-21 (CVS):
    * commented out mission pack specific window manager icons and
      titles.
    * gathered most, if not all, of our compile time options into a
      header file named "h2_opt.h" with documentation. removed gl_opt.h.
      removed all of the one liner extra patches which played with these
      options. updated the COMPILE document accordingly.
    * removed old and outdated Xcode files.
    * added new MacOSX Xcode files for hexen2.
    * fixed a copy+paste error in the loki_patch script.

2006-09-20 (CVS):
    * removed my old code that disabled the SDL_QUIT event during
      resolution changes.
    * added an 64x64 png icon for hexen2.
    * added the xbm format version of 64x64 hexen2 icon.

2006-09-19 (CVS, 1.4.1-rc1):
    * updated documentation.
    * string sizes stuff, #15: zone.c.
    * string sizes stuff, #16: hwmaster.
    * string sizes stuff, #17: sv_ccmds.c.
    * re-diff'ed some of the extra patches.
    * incremented jsh2color version to 1.2.3 and updated its changelog.
    * marked the snapshot of 2006-09-19 as 1.4.1-rc1.

2006-09-18 (CVS):
    * use snprintf and the strl* functions, #13: menu.c. while we were
      there, exported SAVEGAME_VERSION definition through quakedef.h,
      prevented saved games with invalid version number to be listed.
    * use snprintf and the strl* functions, #14: snd_dma.c and snd_mem.c.
    * updated release notes for the upcoming 1.4.1 version.

2006-09-16 (CVS):
    * multiple changes to common library and downloading procedures:
    * use snprintf and the strl* functions (#10): especially during
      filesystem initialization, errors are not tolerated.
    * killed COM_FileOpenRead
    * made COM_filelength to return size_t.
    * made COM_CreatePath to return error or success.
    * made COM_CreatePath to check if the path it's creating is in
      the com_userdir.
    * a few fixes and tweaking in COM_CopyFile.
    * case insensitive game directory name comparisons where it
      would be necessary.
    * error out immediately if no proper game installation is found.
    * reject relative paths in a few more places.
    * fixes to download console command of hw (which always reported
      rename failures).

2006-09-15 (CVS):
    * fixed another gcc4 warning about type-punning (snd_alsa, although
      in disabled code)
    * pattern_len must be of size_t type in Sys_FindFirstFile
    * use the given path_len and snprintf in Sys_GetUserdir, although
      sprintf is perfectly safe at that point.
    * made the MAXCMDLINE definition public through keys.h
    * made a MAX_IDENTIFIER definition and used it for gltexture_t->identifier
    * made Host_CopyFiles to properly check its string sizes, and made it
      to return at the first time it hits an error.
    * added macros Q_strlcat_err, Q_strlcpy_err and Q_snprintf_err, which
      error out if truncation occurs.
    * use snprintf and the strl* functions, #2: host_cmd.c.
    * made COM_DefaultExtension to check the size of its path argument
      and error out if truncation occurs.
    * use snprintf and the strl* functions, #3: cl_demo.c. while we were
      there, did some additional clean-ups and fixes in CL_Record_f,
      CL_ReRecord_f and CL_PlayDemo_f.
    * use snprintf and the strl* functions, #4: cl_main.c.
    * use snprintf and the strl* functions, #5: cmd.c.
    * use snprintf and the strl* functions, #6: console.c.
    * use snprintf and the strl* functions, #7: draw.c and gl_draw.c.
    * use snprintf and the strl* functions, #8: gl_mesh.c.
    * use snprintf and the strl* functions, #9: gl_rmain.c.
    * use snprintf and the strl* functions, #10: keys.c.
    * use snprintf and the strl* functions, #10: midi_mac.c and midi_sdl.c.
      also did some clean-ups while we were there.
    * dcc doesn't need to keep progs.dat open after reading it.
    * added big endian (byte swapping) support to dcc decompilation.
    * fixes for parsing input from fgets, part-1: fixed and improved parsing
      of maplist.txt. fixes a bug reported for the PalmOS port ZHexen2.
    * fixes for parsing input from fgets, part-2: improved parsing of
      config.cfg during the early read.
    * fixes for parsing input from fgets, part-3: improved parsing of
      launcher_options. also ensured string buffer size safety for the
      gllibrary option.

2006-09-14 (CVS):
    * multiple dcc fixes:
    * Make_Immediate() doesn't need a non-null line argument for mode-2,
      made all such calls to send NULL.
    * the nline variable of Make_Immediate needs to be static.
    * renamed multiple occurances of static char line[].
    * added success checks after several malloc() calls.
    * in DccStatement(), silenced a compiler warning about "cast from
      pointer to integer of different size". the offending line was:
      for ( k = t+(t->a) ; (signed short)k < (signed short)s ; k++)
      signed short casts were changed into int casts.
    * the i586 cpuflag was causing a ~two-fold~ slowdown! removed it..
    * fixed a thinko in DEC_AlreadySeen() regarding DEC_FileCtr (wasn't
      a real-life problem, though.)
    * decompilation of the mission pack progs seems to be fixed (dhcc
      used to emit if instead of while in a few cases before).
    * fixed broken size display.
    * backed out my old static patch: making functions and variables
      local to dcc.c static was the reason for bad compilations with
      gcc-4.x series.

2006-09-13 (CVS):
    * re-visited the includes, gathered all net includes into
      the new net_sys.h, did a platform defines clean-up.
    * made dcc to report elapsed time after decompilations.
    * several fixes for dcc.
    * gcc-4.0 builds of dcc with -O2 are broken. gcc-4.1 builds
      even with -O1 are also broken. removing optimizations for
      now.

2006-09-11 (CVS):
    * added detection for Daniel Borca's SAGE Glide opengl driver.
      updated the 3dfx documentation.
    * removed the stupid char* cast from gl_renderer in strncasecmp
    * SZ_Init was missing in hwmaster. added.
    * SV_StartSound: the sized buffer in hexen2 version and the
      field_mask flag in the hexenworld version weren't used, removed
      them. fixed whitespace and spelling.
    * put SZ_Init() to use everywhere in the source.
    * added human readable defines for the MIDI_Pause modes.
    * removed the semicolon at the end of TRACKERR debug macro in
      midstuff.h (must be an accident). changed whitespace to tabs.

2006-09-10 (CVS):
    * small clean-ups in hexenworld utils
    * added hwmquery, a tiny utility for querying hexenworld master
      servers. as of this writing, qstat (therefore xqf, too) can't
      query a hexenworld master server.
    * updated the win32 splash bitmap of hexen2 (no blueish pixels,
      pure black background now.)

2006-09-07 (CVS):
    * fixes and clean-ups for string sizes in launcher
    * COM_WriteFile() shouldn't Sys_Error if it can't open the file.
      its callers should check the return value, instead.
    * more GL_UNUSED_TEXTURE changes (gl_extra_textures is GLuint)
    * debuglog cleanup
    * misc small stuff

2006-09-03 (CVS):
    * added midi support for Mac OS X through QuickTime
    * added the bsd functions strlcat and strlcpy. taken from OpenBSD.
    * started using the strl* functions and snprintf, #1: vid* files.

2006-08-31 (CVS):
    * fixed finding of actual command path in the launcher
    * incremented launcher version to 0.7.7
    * updated release notes for 1.4.1

2006-08-28 (CVS):
    * re-diff'ed some of the the extra patches

2006-08-26 (CVS):
    * minor documentation updates / corrections
    * updated VectorSet for macro correctness
    * VID_ChangeConsize and VID_ReportConsize are for opengl version only
    * updated the rpm spec file for documents' installation
    * dedicated servers must error out if no network drivers are available
    * incremented engine version of hexen2 to 1.16 and hexenworld to 0.18
    * updated release notes for 1.4.1

2006-08-22 (CVS, 1.4.1-pre10):
    * fixed a typo in the playdemo info message.
    * updated the documentation about the software renderer clients and
      non-x86 cpus.
    * updated the documentation about the sound drivers.
    * marked the snapshot of 2006-08-22 as 1.4.1-pre10

2006-08-19 (CVS):
    * Merged a probably better fix for the mezzoman "assignment to world entity"
      bug (from Steven).
    * documentation update.

2006-08-14 (CVS):
    * exported Draw_AlphaPic() for possible future users
    * exported D_ClearOpenGLTextures() and R_InitParticleTexture()
    * moved flush_textures to gl_rmisc.c
    * introduced COM_LoadZoneFile()
    * changed draw_backtile from qpic_t type into a GLint type and freed its
      data after uploading to the opengl pipeline. Draw_PicFileBuf() is not
      needed anymore. similarly, freed draw_chars (charset: conchars) after
      uploading.
    * made software renderer draw.c to load the charset (draw_chars: conchars)
      into zone instead of hunk. needed for further changes.
    * introduced Draw_ReInit(), to be called when a gamedir change occurs.
      reloads the textures which are loaded back at the init phase. fixes
      hexenworld's wrong charset and conback display problem upon gamedir
      changes.
    * Draw_ReInit(): make sure all of alias models are cleared (opengl vers.)
    * updated gamecode compile instructions
    * updated version number in documentation for upcoming 1.4.1 release
    * updated version number in rpm spec file for upcoming 1.4.1 release
    * updated Features list
    * updated web links in the documentation

2006-08-11 (CVS):
    * Fixed the dreaded mezzoman bug causing the following error:
	SV_StartSound: fangel/deflect.wav not precached
	ADDRESS -14227(?) 537(last_attack).last_attack -14226(?)
	mezzoman.hc : mezzo_reflect_trig_touch
	<NO FUNCTION>
	assignment to world entity
	Host_Error: Program error
    * Disabled impulse 11 (ServerflagsCommand): it is a dev command, can
      be issued from any client and may screw up the server pretty bad..
    * Updated the gamecode README/history: v1.16
    * updated other places for gamecode version 1.16

2006-08-07 (CVS):
    * added console background stretching (cvar: gl_constretch). from Steven.
    * initially I didn't want to use cvars for storing the saved volumes when
      muting/unmuting, but, naturally, that prevented writing the saved volumes
      to the config. Steven was right using cvars.
    * merged Levent's latest Xcode files for 1.4.1-pre9

2006-07-30 (CVS):
    * removed a left-over if condition

2006-07-29 (CVS):
    * back out searchpaths from missing/invalid mission pack installations

2006-07-28 (CVS):
    * fixed typoes in utils/README

2006-07-27 (CVS, 1.4.1-pre9):
    * made scaling of the effective console size (the -conwidth commandline
      argument) adjustable from the menu system, using the std_modes array
      for the size to be emulated. made the user's choice to be remembered
      via the config. deprecated the -conheight argument and used the same
      width/height ratio as in the actual resolution.
    * infodown command is only meant to be used wher the game is actually
      running. made it so.
    * updated the documentation for the -conwidth argument
    * marked the snapshot of 2006-07-27 as 1.4.1-pre9

2006-07-20 (CVS):
    * fixed (actually worked-around) the light_level being
      incorrectly set when we run with rgba lightmaps: one
      major bug it resulted in was that it prevented the
      cloaking ability of the assasin. rgba mode is still
      not perfect and need fixing polishing, I guess...

2006-07-18 (CVS):
    * a few int -> size_t changes for filesize vars
    * fixed a gcc4 warning about signedness mismatch
    * some tidy-up in the hexen2 version of R_DrawParticles: kill checks
      are removed from the renderer function, R_UpdateParticles already
      does that for us. the gl version now picks its texture corrdinates
      from an array. repetitive lines were tidied for better readability.
    * removed H2W ifdefs from the list of required opengl functions
    * removed glTexCoord3f fnom the required opengl functions list.
      it is not employed at present.
    * made draw_disc static. unlike quake, it isn't shared with sbar.
    * made hexen2 software renderer to use r_worldentity like in opengl
      version and hexenworld version. this saved us of many ifdef H2W
      ugliness.
    * D_PolysetCalcGradients in d_polyse.c is for !i386 but contained
      i386 code. still keeping for future reference, though.
    * tiny readability cleanup in Draw_BeginDisc
    * if the error message provided by the server is too long, m_return_reason
      string may not be null terminated. found in tyr-quake.
    * made d_aflatcolor global through d_local.h
    * some random whitespace cleanup
    * random typo corrections

2006-07-17 (CVS):
    * updates to the sunaudio driver: reduced the dma buffer size
      to the original values of ID software. added some endianness
      macros for better readability. made it to acknowledge the
      -sndspeed, -sndbits and -sndmono commandline arguments. Still
      problems with it though (audio can't keep up messages...)
    * renamed our own strings.h to pr_strng.h to avoid clashes
      with <strings.h>: we need <strings.h> for the strcasecmp
      and strncasecmp functions. used -dirafter for the local
      includes where possible. renamed strings.c to pr_strng.c
      for consistancy.

2006-07-16 (CVS):
    * added mute, volumeup and volumedown console commands. patch from
      Steven.
    * clean-up in hexenworld master server: removed dead code (the info,
      heartbeat and players members of the server_t structure were never
      used in any way), added M2C_MASTER_REPLY defined as 'd' and used it
      in Mst_SendList, fixed an error in the packet parser which always
      reported that it received a pingtool server list request even for
      invalid packets, added a "clear" console command to clear the list
      of registered servers, moved the "fil|er" console command addition
      to net.c.
    * whitespace cleanup in hexenworld master server
    * updated the documentation for hexenworld master server

2006-07-15 (CVS):
    * updated the mkrelease script to run on non-linux platforms
    * updates to the build scripts.
    * removed unintended viewmodel movement upon setting viewsize to maximum.
      fix from Jacques Krige.
    * more compile fixes about global vars being declared in multiple
      sources: screenwidth. from the PalmOS port.
    * removed declaration of non-existant prealspandrawer function pointer

2006-07-05 (CVS):
    * updated the MacOSX Xcode files for 1.4.1-pre8. from Levent Yavas.
    * updated the documentation.
    * RPM spec file update: added the dedicated server to the packaged
      binaries, preparing it for a future 1.4.1 release.

2006-07-04 (CVS, 1.4.1-pre8):
    * enabled fullscreen/windowed switching through the menu system
      in cases where instant SDL toggling doesn't work
    * removed unnecessary pthread linkage from hexenworld server
    * marked the snapshot of 2006-07-04 as 1.4.1-pre8

2006-07-03 (CVS):
    * killed stpcpy() usage in utils/dcc
    * made Q_strlwr and Q_strupr global
    * disabled the sys_memory, sys_cache and sys_stats console commands
      for server-only binaries except for debug builds.
    * re-visited the GL data types, made them to be of GL types and solved
      the signedness issues. completely removed the scrap allocation option.
      thanks to Levent Yavas for his help.
    * PF_updateInfoPlaque: changed long type to int to prevent future confusion

2006-07-02 (CVS):
    * uppercased the pr_global_struct() macro for easier detection and searching.
      put that macro in use in hexenworld server for smaller diffs between
      the two versions. (there are no actual code changes here, only style and
      cosmetics.)
    * minor optimiziations to mathlib: added VectorNegate and VectorClear macros
      which stops vec3_origin usage in relevant calculations. renamed the Length
      macro to VectorLength for consistancy. updated the utilities' mathlib for
      similar macro usage as in the engine.

2006-06-30 (CVS):
    * cleaned up win32 version's resource stuff and comctl32 linkage

2006-06-29 (CVS):
    * updated opengl header includes
    * improted Xcode build files for MacOSX. from Levent Yavas.
    * made the asm files to compile with yasm. tested with yasm-0.5.0rc2
    * fixed alsa minimum required version detection (again). only a
      theoretical thing, but just for correctness' sake.
    * qbsp: do the name search in a case insensitive way. some wadfiles
      doesn't have the texture name in expected case.
    * cleaned up some things in the build system. added no sound and
      no cdaudio options. removed static build targets from hexen2
      and hexenworld makefiles. misc small things.

2006-06-25 (CVS, 1.4.1-pre7):
    * added a hexen2 dedicated server which seems to work much better than
      the client/server application running in dedicated mode. model loading
      implementation taken from LordHavoc's old lhnqserver, as it seems better
      than the one in hexenworld server.
    * h2ded: in NET_SendToAll, a check for canSend had to be added. otherwise
      a changelevel issued by the progs doesn't work. if compiled in debug
      mode, it is revealed thatthe message was being attempted to be sent
      while canSend was false. on the otherhand, a changelevel from the
      console seemed fine..
    * separated cl_effect.c and sv_effect.c for easier maintainance
    * renamed CL_CopyFiles to Host_CopyFiles and CL_RemoveGIPFiles to
      Host_RemoveGIPFiles, moved them to host.c
    * added Q_malloc, Q_free and COM_LoadMallocFile, which may become useful.
      found among some old sources by LordHavoc.
    * move the multiplayer game saves while moving the user data, as well.
    * moved mousestate activation stuff to CL_ParseServerInfo
    * better handling of the +attack/-attack demo recording hack
    * added timeBeginPeriod to win32 timeGetTime usage
    * misc clean-ups and prepare for merging a dedicated server
    * marked the snapshot of 2006-06-25 as 1.4.1-pre7

2006-06-17 (CVS, 1.4.1-pre6):
    * merged a newer version of sdl cdaudio driver: lifted from the twilight
      project and applied additional bug fixes. the older driver we took from
      sdlquake was noticably slowing down the game.
    * skip intermissions while recording demos across multiple levels,
      but stop recording at ending scenes.
    * do the GETOSPACE ioctl after setting the parameters and just before
      mmaping /dev/dsp. found in QuDos quake2 port, reported by an anonymous
      forum poster.
    * ifdef'ed the qnx quirk in in_sdl.c, just in case..
    * QNX needs -lsocket as an LDFLAG. added to scripts/makefile.inc
    * lib3dfxgamma must actually be compiled with -fPIC ..
    * updated the makefile of the launcher
    * marked the snapshot of 2006-06-17 as 1.4.1-pre6

2006-06-15 (CVS, 1.4.1-pre5):
    * fixed gcc-4.1 compiler warning in dcc:  In function 'WriteData':
      hcc.c:319: warning: dereferencing type-punned pointer will break
      strict-aliasing rules
    * added big-endian support (byte swapping) to hcc while writing down the
      compiled progs. tested on sparc-solaris and ppc64-linux.
    * added big-endian support (byte swapping) to jsh2color while writing down the
      litfile. tested on sparc-solaris and ppc64-linux.
    * added a script to detect arch and os. taken from loki setup tools.
    * updated build system: stored target machine type to MACH_TYPE, the
      i586 march flag is only used on MACH_TYPE==x86 and is overridable in
      the makefile, added an extra ARCHFLAGS, added -DSUNOS to ARCHFLAGS
      for SunOS.
    * added an experimental SUN Audio driver, adapted from the darkplaces
      project. for native audio in openbsd and netbsd.
    * kept the same standart for alsa sound availablity in snd_sys
    * sunaudio, launcher integration
    * bumped launcher version to 0.7.6
    * Updated help strings with regard to the available sound drivers
    * added (back) the sys/filio.h include of SunOS
    * on some arches -lsocket is needed. added for SunOS, waiting Steve for QNX.
    * net compile fixes on sun/solaris. model_t hack found in the darkplaces
      project.
    * added network compatibility support for Korax's UQE-Hexen2-1.13 (protocol
      version 20, uses two new svc messages which are harmless on client without
      actual support for them).
    * added a comment about win32 needn't be x86 only (how about alpha?..)
    * bumped version to 1.4.1-pre5 / 2006-06-15

2006-06-14 (CVS, 1.4.1-pre4):
    * eliminated some ifdefs by defining flush_textures as 1 in glquake.h for h2w
    * removed bogus retval check from win32 version of Sys_FindFirstFile
    * made console and menu to disappear for playdemo like it does in timedemo.
      thanks go to Korax for notifying me about this.
    * disabled the VCR facility by default. made it a compile time option. after
      all, it is not an ordinary demo recording but a server only feature for
      debugging server bugs.
    * Version 1.4.1-pre4 / 2006-06-14.

2006-06-13 (CVS):
    * removed runtime linkage to winsock: we already link to winsock
      at compile time, and not doing so fails our linkage anyway.

2006-06-12 (CVS):
    * fixed the backspace and return keys not working in the in-game console
      in QNX. magically they did work in the disconnected full screen console.
      from Steven.
    * fixed client segmentation faults in heterogenous client/server situations,
      such as pure hexen2 client vs. mission pack server: we now Host_Error upon
      missing models when connecting to a server.
    * do not sys_error if we can't bind to a network interface at init phase

2006-06-10 (CVS, 1.4.1-pre3):
    * added -cddev commandline argument support to cd_sdl. from Steven.
    * added QNX among the platform names
    * simplified handling of old_bgmtype in menu.c
    * 1.4.1-pre3 / 2006-06-10

2006-06-08 (CVS, 1.4.1-pre3):
    * split strings out of pr_edict.c and sync'ed it with the hexenworld version
    * provide the flags to mprotect() in a more standart way. from Steven.
    * handled mprotect() for qnx systems (no getpagesize()). taken from quakeforge.
      we need to do a better job of of ifdef'ing here, though: do we need autotools
      support ???
    * 1.4.1-pre3 / 2006-06-08

2006-06-03 (CVS, 1.4.1-pre3):
    * fixed broken display of launcher binary name when run using a symlink.
    * cdrom: the case when the user changes track without using the "cd"
      command should now be handled correctly (was accidentally left commented
      out in cd_bsd. also added to cd_linux now). renamed drv_vol0 to orig_vol.
      misc whitespace cleanup.
    * added back the password file method of determining the user's home
      as a compile time option. modified the length check for the homedir
      path length using the length of a would-be-large-enough template.
      small clean-ups here and there.
    * a few MorphOS fixes, hopefully all correct.. those ifdef __MORPHOS__
      stuff are probably correct for AmigaOS, as well.. some header clean-ups
      here and there.
    * bumped engine version to 1.4.1-pre3 / 2006-06-03, hwmaster version to
      1.2.3, and launcher version to 0.7.5.

2006-05-31 (CVS, 1.4.1-pre2):
    * hexen2/view.c: disabled the irritating forced centerview (pitch
      drifting) while flying in hexen2. the behavior now matches that
      of hexenworld.
    * cl_input.c, in_sdl.c, in_win.c, hexenworld/Client/view.c: made
      things a little bit more readable.
    * quakedef.h, bothdefs.h: version 1.4.1-pre2 / 2006-05-31

2006-05-26 (CVS, 1.4.1-pre2):
    * fixed Mac platform defines. Added DragonFly into the platform names.
    * hopefully fixed all linkage errors on MacOSX
    * commented out the unused Sys_kbhit thing in the utilities
    * bumped the version to 1.4.1-pre2 / 2006-05-26

2006-05-20 (CVS, 1.4.1-pre1):
    * snd_oss endianness fixes.
    * cleaned up sound tryrates, etc. changed tryrates array to include
      48000, 24000, and 16000 speeds (this should help 48khz AC97 chips,
      from darkplaces).
    * added 24000 and 16000 sound sampling rates to the launcher. bumped
      its version to 0.7.4.

2006-05-19 (CVS, 1.4.1-pre1):
    * added a compile time option to dicetly activate the mission pack
      support without the need for a commandline option like -portals
      or -h2mp
    * misc clean-up

2006-05-18 (CVS, 1.4.1-pre1):
    * AoT and earlier versions of HoT didn't create <userdir>/data1
      and kept all user the data in <userdir> instead. Starting with
      HoT 1.4.1, we are creating and using <userdir>/data1 . Added a
      procedure in order to update the user direcory accordingly.
    * Made cdaudio and midi to stop upon CL_Disconnect
    * Made COM_WriteFile() to return 0 on success, 1 on write errors
    * Added MacOS and MacOSX to platform names. on macosx, set the userdir
      to ~/Library/Application Support/Hexen2 instead of ~/.hexen2
    * Set bMidiInited to 0 in MIDI_Cleanup()
    * Renamed MIDI_UpdateVolume to MIDI_Update
    * Incremented the version to 1.4.1-pre1

2006-05-17 (CVS):
    * fixed demos freezing upon changing maps in hexen2. fix found
      in Pa3PyX' sources. hexenworld doesn't suffer from this issue.

2006-05-12 (CVS):
    * gl_draw.c, gl_vidsdl.c, gl_vidnt.c: hopefully fixed all endianness
      issues with opengl. placed two FIXMEs around the palettized textures
      code in VID_SetPalette which I am not sure about.
    * doc update: fixed a few typos, etc.

2006-05-05 (CVS):
    * hexen2/net_udp.c: fixed compilation on OpenBSD
    * hw_utils/hwrcon/hwterm.c: fixed compilation on NetBSD
    * made some build scripts more BSD-friendly

2006-04-28 (1.4.0-final):
    * hexen2/pr_edict.c: char seems to be of different signedness on MorphOS,
      so changed the type of NewLineChar to signed char. Thanks go to Michal
      Wozniak for catching this.
    * added an extra patch that restores the old and less slippery Anvil of
      Thyrion friction for original hexen2 games
    * A few minor documentation updates

2006-04-18 (1.4.0-final):
    * back to xdelta for pak binary patching, removed loki_patch: all of its
      fancy bloat can be done in a shell script, which is more customizable.
    * minor documentation updates
    * several packaging tidy-ups
    * minor update to version display stuff
    * 2006-04-18: HoT-1.4.0-final.

2006-04-12 (CVS, 1.4.0-RC3):
    * disabled multitextured sky for 3dfx: it doesn't like GL_DECAL
    * allowed hexenworld to skip the mission pack support if -noportals
      commandline switch is used.
    * added the -portals and -noportals switches to the help output.
    * several documentation updates.
    * marked the snapshot of 12 Apr. 2006 as 1.4.0-RC3

2006-04-10 (CVS):
    * launcher version 0.7.3: changed the portals destiny option into an option
      check button. moved mod combolist preparation to callbacks.c, added an
      extra filename check to hw mod detection. made h2game option to be saved
      in launcher_options, added is_botmatch to decide on -listen and -nolan
      arguments, misc tidy-ups.
    * Made the model data caching (the ms2 files) a compile time opengl option
      defaulting to off (DO_MESH_CACHE): it causes more problems than it solves,
      and there is no easy way to prevent the mesh cache mismatches. You change
      the mdl file with an override file, but you have a cached ms2 file in the
      glhexen directory from the old mdl --> crazy models on the screen. Or, you
      run a mod without the mission pack first and then with mission pack, or
      vice versa, and the ms2 cache from the previous instance would mismatch
      the mdl from the latter --> crazy models on the screen again (in fact,
      this second one can be overcome somehow, but it's not worth the effort.)
      With this option set to 0, no problems...
    * gathered all compile-time opengl options into a gl_opt.h header file.
      changed USE_HEXEN2_PALTEX_CODE and USE_HEXEN2_RESAMPLER_CODE to 0 / 1
      instead of the previous define/undef.
    * changed hwcl client struture to have a 128 length mide_name to be consistent
      with the rest of the tree (h2 and hwsv already had it as 128.)
    * usual whitespace / coding style tidy-ups : d_vars.c, nonintel.c, sv_effect.c,
      cl_effect.c, cl_effect.h, cdaudio.h, mididef.h, hw/progdefs.h, quakedef.h,
      qwswdef.h, bothdefs.h, spritegn.h, client.h, server.h, model.h, gl_model.h,
      vid.h
    * added to extra patches: gl_texsort and R_DrawSequentialPoly()

2006-04-04 (1.4.0-RC2):
    * killed (almost) all H2MP ifdefs: this is the first step in making a
      single binary which handles both h2 and h2mp properly. the only H2MP
      ifdefs left are actually the ones for determining the icon and window
      manager text, so nothing serious. the binary normally will only run the
      original h2 game. if given a -portals or -missionpack or -h2mp argument,
      it will look for the mission pack and run it (this is the same logic
      that quake used.) The only serious side effect is that h2 and h2mp
      progs being different: This will be solved by the next patch by adding
      support for the two progs versions into a single binary.
    * added support for both hexen2-v1.11 and h2mp-v1.12 progs into a single
      hexen2 binary. this essentially completes the h2/h2mp binary merge
      started with the previous patch. many conditionals had to be added
      especially on the server side, but I couldn't notice any serious
      performance loss on a PIII-733 computer. Supportfor multiple progs.dat
      is now advised to be left enabled in order to support mods which uses
      that feature.
    * removed all h2mp targets from the hexen2 makefile. now that we use a
      single binary for both h2 and h2mp, different builds are not necessary.
    * added a maplist.txt with only a 0 in it to the portals directory
      so that the mission pack running a hexen2 boss map wouldn't need
      a progs2.dat
    * launcher v0.7.0: changed binary name handling with respect to recent
      engine changes. other small tidy-ups.
    * updated documentation about running the mission pack. small tidy-ups.
    * duplicated trace setting code in pr_cmds.c made into a new PR_SetTrace
      procedure
    * added detailed comments to COM_Gamedir. added sanity checking for
      reserved game directory names in COM_Gamedir.
    * added support for activating the mission pack by a "-game portals"
      command-line argument.
    * re-diff'ed the hexen2_single_prog and demoness_in_oldmission extra
      patches after these changes
    * marked the snapshot of 2006-04-04 as 1.4.0-RC2

2006-03-31:
    * filename reorganization in the cvs: removed the irritating "_dl_"
      from the hexen2 gl files. renamed the weird xdelta files.
    * continued making static functions and vars static. whitespace and
      coding style cleanup. Also fixed a nasty bug in the hexenworld
      version of r_sprite.c that would show up or platforms where
      sizeof(float) != sizof(float *) (from quakeforge). also removed the
      #warning directives for the non-x86 non-compilability.  added a few
      comments about the non-Intel issue.
    * only add com_userdir to the searchpath if it is different from
      com_gamedir (just in case.)
    * Added a log on compilation for non-x86.
    * minor fixups, minor syncing, whitespace clean-ups
    * fixed -Wshadow warnings
    * fixed compiler warnings (win32)

2006-03-26 (CVS, 1.4.0-RC1):
    * Incremented engine version to 1.15 for hexen2 and 0.17 for hexenworld
    * Updated documentation for compiler support
    * Added basic documentation for hwsv and hwcl
    * Several documentation updates
    * Marked the snapshot of 2006-03-26 as 1.4.0-RC1 (-RC state, finally.)

2006-03-25 (CVS, 1.4.0-pre8):
    * Fixed COM_Gamedir() to properly update com_gamedir in case of directory
      names already in com_base_searchpaths.
    * hw directory check in COM_Gamedir should be only for hexenworld game
    * modified check in COM_LoadPackFile() should only be done for the base
      filesystem directories, otherwise it is always modified game.
    * COM_Gamedir() should add user directories to the searchpath, as well
    * com_base_searchpaths is only what its name implies: the base game
      directories.  so, moved -game argument handling to COM_Gamedir().
      demo versions are not allowed to -game, as usual.
    * COM_Gamedir: add the directory to the searchpath ~after~ adding the
      pakfiles in that dir, so that the dir itself will be placed above the
      pakfiles in the search order.
    * Change the *gamedir serverinfo key properly in COM_Gamedir(), not in
      SV_Gamedir_f(), so that it is properly set when the server is started
      by a -game argument.
    * Added a simple COM_FileInGamedir() which reports the existance of a file
      with read permissions in com_gamedir or com_userdir. -1 is returned on
      failure, ie the return value of the access() function
    * Hexenworld client::CL_ParseServerData(): exec autoexec.cfg upon gamedir
      change as well.  if we are to exec config.cfg, do an unbindall in order
      to clear any weird mod specific key bindings.  for file existance check,
      use the new COM_FileInGamedir().
    * Added support for pak files in the users' directories.
    * Eliminated multiple listings of maps with the same name.
    * Changed the name of the maps command to maplist for consistancy
    * Tiny tidy-ups.

2006-03-24 (CVS, 1.4.0-pre8):
    * Weird patch (TM) :  not just a silly debug message place and content
      change. it actually prevents a weird segfault ;) [here's the deal:
      after merging in the colored lights patch, the game would always
      segfault when run with a command line like "glhexen2 +load s0" with
      the cvar gl_purge_maptex set to 1. It seems like actually printing
      something on the console just after the textures are purged cures
      this thing. this patch is just a band-aid..]
    * Added a flags member to the cvar structure. For now, only a CVAR_ROM
      is defined and employed: is that flag is set, the cvar cannot be set
      unless the CVAR_ROM bit is cleared by the C code. This is still
      incomplete work.
    * Marked the cvars oem and registered as read-only in COM_InitFilesystem
    * Updated the earl-read-cvars in VID_Init and VID_PostInitFix to use the
      new CVAR_ROM flag: they look less clumsy now.
    * made the lightmap format configurable via the menu system using a new
      cvar gl_lightmapfmt. -lm_1 and -lm_4 are still functional as commandline
      overrides even with commandline options dictating a direct load of a map,
      such as +playdemo xxx or +load xxx. updated the opengl features menu with
      new proper notifications about the colored lighting option's level reload
      necessity and with new entries for the ligthmap format.
    * updated the documentation about the lightmap format configurability
      in the menu system.
    * killed the archive, server and info members of the cvar structure. the
      new flags member is now employed for all those purposes. also made all
      non-globally used cvars static.
    * killed cd_unix.c and made a cd_unix.h to be included in all cdaudio
      files for unix. all unix cdaudio files will be compiled, since they are
      protected by the cd_unix.h include.
    * includes cleanup
    * moved include macros for different xbm icons to a new xbm_icon.h header
    * killed a few -Wshadow warnings. killed some more left-over vars.
      killed unnecessary includes, tiny tidy-ups. windows resource files
      clean-up
    * re-diff'ed (again) some of the extra patches after today's changes.

2006-03-21 (CVS, 1.4.0-pre8):
    * Commented out Anvil of Thyrion solution for the original hexen2 friction
      emulation which was hard-set at 6. Merged the solution found in pa3pyx's
      tree.  v1.11 progs doesn't initialize the friction properly (always 0).
      In fact, applying a patch to the progs can easily solve this issue, but
      in that case several unpatched mods would be left broken. Note: Compared
      to the AoT solution down below, this makes pure-hexen2 to feel slightly
      more slippery.
    * there is no savegame compatibility with the Raven's 1.11 versions.
      updated the features list properly.
    * merged needload stuff of model.c from hexen2 to hexenworld client.
    * continued making static functions and vars static. whitespace and coding
      style cleanup. this time in model.c and gl_model.c. also moved the mcache
      cmd addition to Mod_Init and added save-to-file functionality.

2006-03-20 (CVS, 1.4.0-pre8):
    * sbar cvars update: killed non-functional sbtemp. killed cl_sbar
      and cl_hudswap in hexenworld which was a non-functional left-over
      from quakeworld. added a dmtrans cvar (0,1,2) for the software
      renderer deathmatch overlay translucency which was lost after the
      recent DMMode cvar update.
    * hexenworld hcode: fixed the server crash when the server is spawned
      with dmmode 1. solution found in the ghost mod.
    * hexenworld hcode: properly notify users when dmmode is changed.
      also remove the brightfield from the icon holder when dmmode 1
      is abandoned. code found in the the ghost mode.

2006-03-17 (CVS, 1.4.0-pre8):
    * Fixed the snd_scaletable init breakage with gcc-4.1 and -O1 and higher.
      Thanks to Kevin Shanahan (aka Tyrann).
    * Put back mission-pack only objectives stuff back into pure h2 builds,
      it was a total screw-up.
    * lib3dfxgamma, v0.0.4: Fixed incorrect prototype for the grGet function
      (it takes a signed int param*, not unsigned). Also renamed FX_Get to
      FX_GetInteger to be more explicit.
    * The linux 3dfxgamma option is now compiled in. it no longer unnecessarily
      depends on an external lib3dfxgamma.so.
    * Updates to COM_LoadPackFile, COM_CheckRegistered and COM_InitFilesystem:
      killed variables com_modified, com_portals and static_registered. Combined
      all such info into an unsigned gameflags var. If correct versions of pak
      files are installed at correct places, the state will be set: whether we
      have the demo, oem or registered pakfiles, whether the registered game pak
      files are version 1.11, whether it is a modified game (extra pak files in
      the game directory or -game among the commandline switches), and whether
      we have correct versions portals and hexnworld pakfiles. The game will
      refuse to run on incorrect instances, h2mp will refuse to run if portals
      isn't set and hexenworld will refuse to run if hexenworld isn't set.
      Also activated the hexenworld progs crc check which was comment out (who
      knows why): Server will refuse to run if it detects an incorrect crc for
      its hwprogs.dat.
    * Marked the snapshot of 2006-03-17 as 1.4.0-pre8.

2006-03-14 (CVS, 1.4.0-pre7):
    * Added support for colored lights and .lit files;. initially extracted
      from jshexen2 (thanks Michal Wozniak). Colored lights and lit file
      support is now added to hexenworld, as well, although the new cvars
      gl_colored_dynamic_lights and gl_extra_dynamic_light aren't functional
      for it: hexenworld had some sort of "colored" dynamic lights in it,
      and they aren't changed by this patch. The cvars mentions are fully
      functional for hexen2. Colored lights member of the dlight_t in h2
      is changed to be an array of 4, instead of vec3_t as it used to appear
      in jshexen2, so that things look more alike with the hw version. The
      default lightmap format is changed to GL_RGBA, (previously it was
      GL_LUMINANCE.) Command line arguments can be employed to change the
      lightmap format:  -lm_1 : GL_LUMINANCE, -lm_4 : GL_RGBA (default).
      (Note: Would it be a good (AND a feasible) idea to add a menu+cvar
      control for the lightmap format?)
    * added colored light opions to the opengl features menu.
    * added the -lm_1 and -lm_4 commandline switches to the documentation.
    * updated the documentation with regard to several cvar settings and
      their menu entries. several updates to the features list and the
      release notes.
    * launcher: forcefully use the -window argument, since the fullscreen
      and windowed settings are now remembered by the game.
    * more clarification for the conwidth option on the launcher tooltips
      and in the documentation
    * launcher: removed the unnecessary -nomtex option, added a button to
      enable the old GL_LUMINANCE format (the -lm_1 switch.)
    * splitted the huffman stuff out of net.c to go into their own files
    * fixed objectives in the expansion pack which was broken during the
      1.3.0 development cycle by a bad gcc4 fix
    * fixed a bug where with viewsize (scr_viewsize) being set to 120,
      the game wouldn't start with a mini status bar unless the user did
      a size-up/size-down
    * properly macroized the fullscreen intermissions as a compile time
      option. editing only one line in screen.h is now enough.
    * removed the expansion pack only feature of objective strings from
      hexen2-only builds (many new ifdef H2MP stuff).
    * removed the expansion pack only intermission picture and string
      searches from hexen2-only builds.
    * created a hw_utils module to contain standalone hexenworld utilities
      and imported the rcon tool sources
    * continue making static functions and vars static, whitespace and
      coding style cleanup. a few compiler warnings were fixed and tiny
      synchronizations between h2 and h2w versions were done along the
      way.
    * marked the snapshot of 2006-03-14 as 1.4.0-pre7.

2006-03-04 (CVS, 1.4.0-pre6):
    * fixed the win32 cross compile scripts of the utilities.
    * utils/jsh2color: moved external definition file stuff to tex.c;
      small tidy-ups in args parsing; do not allow -the -nodefault switch
      to take effect if the external color definition file cannot be
      accessed; inserted a note about the fact that the effects of the
      -light argument being zeroed (to be examined); bumped its version
      to 1.2.2.
    * re-organized the gl_vid files' layout a bit. win32 and sdl versions
      should now be more "diffable".
    * small opengl headers tidy-up.
    * another large batch of coding style / whitespace cleanup, continued
      to make static functions and variables static, fixed a few warnings
      and a few tiny bugs along the way.
    * marked the snapshot of 2006-03-04 as 1.4.0-pre6.

2006-03-02 (CVS, 1.4.0-pre5):
    * created a new "opengl features" entry under the options menu and
      moved opengl options under it. added new opengl menu options for
      texture filtering, glow effects, multitexturing, stencil buffered
      shadows and texture purging upon map change.
    * automatically get rid of the menu/console when playing a timedemo.
      patch from Steven.
    * got rid of the menu panels upon starting a new games through the
      menu system
    * extra large tidy-up operation in the utilities tree: killed a few
      warnings about uninitialized variables, added -Wno-char-subscripts
      to the hcc compiler flags to silence the "array subscript has type
      char" warnings in pr_lex.c. added a README file for the jsh2color
      utility. re-worked the utilities documentation. fixed an incredibly
      stupid typo in the makefile which has been there for ages. added
      cross compilation scripts to all of the individual util directories.
      unified the cmdlib for all of the utilities; this includes the newer
      version of COM_Parse() of hcc which aslo parses and skips C style
      comments. commented out unused 3DS stuff in genmodel utility (don't
      even know whether it's working.) allowed compilation of the tiny
      bspinfo tool. created a directory named common under the utilities
      and moved cmdlib and qdir stuff into it for shared usage. largely
      reorganized the utilities directory layout:
	- removed older version of map tools. still keeping the old version
	  of hcc for compatibility reasons.
	- moved several directories to the root of the utils directory:
		h2mp_utils/hcc		->  hcc
		h2_utils/hcc		->  hcc_old
		h2mp_utils/utils	->  maputils
		h2mp_utils/genmodel	->  genmodel
		h2mp_utils/qfiles	->  qfiles
	  the cvs history on the affected files are lost, but one can find
	  them in the Attic, etc.
	- probably several other smallish touches.
    * updated the mkrelease script to kill the obsoleted empty directories
    * added features list to the documents directory
    * another large batch of coding style / whitespace cleanup: continued
      to make static functions and variables static and fixed a few warnings
      and a few tiny bugs along the way.
    * updated the README for the gamecode and marked the snapshot of
      2006-02-24 as version 1.15. I'll probably increment the engine
      version to 1.15, too, when H.o.T.-1.4.0 is ready.
    * marked the snapshot of 2006-03-02 as 1.4.0-pre5.

2006-02-23 (CVS, 1.4.0-pre4):
    * large amount of coding style / whitespace cleanup. continued to make
      static functions and variables static and fixed a few warnings and a
      few tiny bugs along the way.
    * fixed a tiny Makefile bug about the USE_X86_ASM flag.
    * marked the snapshot of 2006-02-23 as 1.4.0-pre4.

2006-02-13 (CVS, 1.4.0-pre3):
    * added missing release notes to the spec file
    * added release notes for future-1.4.0, in pre-release state though..

2006-02-12 (CVS, 1.4.0-pre3):
    * removed bogus message from the MAX_GLTEXTURES Sys_Error
    * updated build requirements in the documentation
    * added a filename change case script. added a script for making a
      release tree from the cvs tree.
    * documented palettized (8 bit) textures option
    * updated the TODO list
    * updated the rpm spec file for future H.o.T.-1.4.0
    * updated the mkrelease script (move the spec file to the root of the tree)
    * imported JSH2Colour-1.1 sources into the utilities
    * jsh2color: coding style, whitespace / indentation clean-up. also removed
      unused light.h includes.
    * jsh2color: removed unused files.
    * jsh2color: updated the gpl license file from gnu.org
    * jsh2color: added unix-style versions of data files
    * jsh2color: added makefiles and build scripts
    * jsh2color: made the unix port:
	- several include fixes
	- moved nested externs out of functions
	- fixed type-punning gcc4 warning in LoadBSPFile
	- removed several unnecessary functions from cmdlib
	- synced cmdlib to what we did in HoT main tree:
	  strcasecmp/stricmp macros, endiannes stuff, getwd
	  fixes, etc.
	- added an ioctl fucntion Sys_kbhit as a _kbhit() replacement
	- moved the DecisionTime thing to cmdlib where it belongs.
	  added a simple _getch() replacement to it using getchar().
	- added a paranoid negative check before a sqrt() call
	- killed all unused variable warnings
	- removed several commented-out stuff
	- trying to print the map name through entity->message requires
	  line number (entity->message)-1  to be read from strings.txt,
	  therefore not worth the effort. commented it out. now printing
	  the map file name, only.
	- merged CalcFaceExtentsNoErr into CalcFaceExtents
	- removed unused macros in ltface.c
	- added math optimization flag -ffast-math, which actually cures
	  a segfault when coloring demo2.bsp. Also added -march=i586 and
	  -fexpensive-optimizations flags.
	- removed unnecessary underscored versions of math functions in
	  mathlib
	- converted VectorLenth() into a macro, in mathlib
	- added min/max macroes for unix
	- added fflush(stdout) calls after all printf() calls which don't
	  print a newline.
	- probably a few other minor stuff.
	- bumped version to 1.2
    * jsh2color: Fixed fpmath segfaults: With vec_t defined as double, the
      front and back stuff in TestLine() need to be vec_t as well:  While
      creating lit files for demo2 or castle4, the gcc compiled binaries
      segfault under either of these conditions:
	- the program is not compiled with the -ffast-math flag.
	- compiled with gcc v4 for arches >= pentiumpro: i686,
	  pentium2, or pentium3 without the -msse -mfpmath=sse
	  extra flags.
    * jsh2color: More double/vec_t clean-up
    * jsh2color: Killed unnecessary mathlib.h include in bspfile.c
    * jsh2color: Cosmetic stuff: report the name of the lit file when finished,
      better reporting of map name.
    * jsh2color: Bumped version to 1.2.1
    * jsh2color: added a changelog
    * jsh2color: updated to use uhexen2 build system
    * added jsh2color to the utils build scripts.
    * added jsh2color to the utils README.
    * bumped version to 1.4.0-pre3 (2006-02-12)

2006-01-24 (CVS, 1.4.0-pre2):
    * fixed a silly opengl bug which used to display "weird things (TM)" on
      win32 when antialiasing was set manually.
    * small tweak to fade screen
    * bumped version to 1.4.0-pre2 (2006-01-24)

2006-01-23 (CVS, 1.4.0-pre1):
    * sys_unix.c: added code to sleep a bit when we have no focus or paused, and
      sleep more when we are minimized. inspired from the q3 project at icculus.
    * tidied up the version and help display stuff. bumped the HoT version to
      1.4.0-pre1. added conditionals to properly display beta version strings.

2006-01-22 (CVS):
    * added gcc version detection scripts. our unit-at-a-time problem seems to
      be limited to gcc-4.0 series only. gcc-4.1 seems fine for now. limited
      disabling of that feature to gcc-4.0.x compilers by default, but the
      behavior can always be adjusted by adding a DISABLE_UNIT_AT_A_TIME=0 or
      1 to the make commandline.
    * added nonintel.c to compilation. although it's empty for i386, we can
      make use of it one day.
    * added a Q_isnan for NaN tests with -ffast-math, maybe of use someday.
      taken from the icculus-quake3 project.

2006-01-21 (CVS):
    * gl_vidnt.c: DescribePixelFormat fails with old 3dfx minigl drivers: don't
      Sys_Error.

2006-01-20 (CVS):
    * Switched back to original hexen2 version of GL_ResampleTexture: the h2w
      (quake) code gave slightly sharper but "jaggier" textures here and there.
      bad results were especially detectable on help screens when using old
      cards with small (256 kb) texture size support (read: old voodoo boards).
      by changing the macro USE_HEXEN2_RESAMPLER_CODE from define to undef in
      glquake.h, one can always use the h2w version.
    * Changed palettized texture code macro name from OLD_8_BIT_PALETTE_CODE
      to USE_HEXEN2_PALTEX_CODE.
    * Added debug-mode error reporting to CL_CopyFiles, since we're dealing
      with multiple file access in there (from Steven.)

2006-01-17 (CVS):
    * Made the game to remember its video settings:
      We essentially do an early read of config.cfg while in VID_Init to
      remember the settings (new procedure: VID_EarlyReadConfig). (new
      cvars: vid_config_glx, vid_config_gly, vid_config_swx, vid_config_swy,
      and vid_config_fscr). The commandline still acts as an override. Then,
      it fixes the cvar screw-up caused by the actual read of config.cfg by
      overwriting the affected cvars with the running settings (new tiny
      procedure: VID_PostInitFix, called from Host_Init).
      Implemented here are the screen dimensions, color bits (bpp, for win32,
      cvar: vid_config_bpp), palettized textures and multisampling (fsaa, for
      unix, cvars: vid_config_gl8bit and vid_config_fsaa) options with their
      menu representations and cvar memorizations.
      This method can probably be also used to store/remember the conwidth
      settings. Also applicable is the sound settings, such as the driver,
      sampling rate, format, etc.
      Secondly, the patch sets the fullscreen cvar not by only looking at silly
      values but by looking at the current SDL_Screen flags.
    * Bound win32 window names and classnames to macros for better readablity
    * Win32 software renderer: disabled windirect (vesa) modes by default,
      because they aren't working reliably (at least not on my box). Enabled
      directdraw modes by default, they seem to work OK, for now.
    * Synced win32 software renderers: hexen2 now uses the new driver from h2w
    * Added block_drawing stuff of h2w to hexen2 (new vid_win.c requires it.)
    * Removed Snd_AcquireBuffer and Snd_ReleaseBuffer (was only used by the old
      vid_win.c of hexen2.)

2006-01-16 (CVS):
    * macroized dlsymming of gl functions (similar to dlsymming of alsa
      functions) which freed a lot of crowd from gl_vidXXX files.

2006-01-15 (CVS):
    * switched back to original hexen II code for palettized textures for
      better quality, leaving the newer hexenworld (quake) code as option:
      changing the macro OLD_8_BIT_PALETTE_CODE from define to undef in
      glquake.h will do the switching.

2006-01-14 (CVS):
    * fixed fullscreen/windowed toggling in windows opengl version.
    * fixed the incorrect (misled) usage of modestate values, although
      the result doesn't change.

2006-01-12 (CVS):
    * added video modes enumeration via SDL. added on-the-fly video mode
      changing partially based on the Pa3PyX hexen2 tree. TODO: make the
      game remember its video settings, clean it up, fix it up...
    * created an sdl_inc.h with all sdl version requirements and replaced
      all SDL.h and SDL_mixer.h includes with it. Made the source to compile
      against SDL versions older than 1.2.6 without disabling multisampling.
      Multisampling (fsaa) option is now decided at runtime. Minimum required
      SDL and SDL_mixer versions are now 1.2.4. If compiled without midi,
      minimum SDL required is 1.2.0. Added SDL_mixer version checking to
      sdl-midi with measures to prevent relocation errors.
    * fixed incorrect compatibility define for DWORD
    * small alsa buffersize update taken from the quakeforge tree. also added
      a ALSA_CHECK_ERR macro to make the init procedure more readable. coding
      style cleanup.
    * moved init of platform specific vars and function pointers to snd_sys
    * small update to the sdl sound driver
    * do not change the desined_XXX sound variables in case of failures.
    * sound wnitespace cleanup.
    * used a more readable name for list of symbols in lib3dfxgamma
    * merged quake3 bits to the alternative sdl sound patch to cure most of
      the latency issues and re-diffed after the latest sound changes

2006-01-07 (CVS):
    * cleanup and "static" stuff on the vid files
    * added the last pieces (lightmaps) of adjustable filters which I've
      been forgetting for a very long time
    * made M_DrawCheckbox global
    * tiny whitespace cleanup in sbar.c

2006-01-06 (CVS):
    * killed unnecessary includes in sv_main
    * added a simplified findfirst/findnext implementation: When given a
      directory and a wildcard match pattern, they will find/report the
      matches one after other. Unix implementation uses readdir()/fnmatch(),
      win32 uses FindFirstFile native functions. Sys_FindFirstFile and
      Sys_FindNextFile return filenames only, not a dirent struct, therefore
      there is no attribute matching. this is enough for what we presently
      need in this engine. may be improved in future.
    * put the new Sys_FindFirstFile/Sys_FindNextFile stuff into action.
      also killed the tempdir and trailing slash funnies in host_cmd.c when
      calling CL_CopyFiles and CL_RemoveGIPFiles in saving and loading games.
    * increased minimum heapsize to 16 mb, otherwise hunk allocation errors
      occur with old 8 mb minimum. added a -forcemem commandline switch which
      enables forcing user memory args out of min/max limits when parsing
      the -heapsize and -zone switches.

2005-12-30 (CVS):
    * gl_draw fixes/clean-ups: fixed palettized textures corruption upon
      resolution changing (which will be available by an upcoming patch),
      applied the same fix for scaled data allocation in other texture upload
      functions just to be on the safe side, added detailed info when reporting
      texture cache mismatches, killed unnecessary alpha checking in palettized
      texture upload, several other whitespace clean-ups.

2005-12-29 (CVS):
    * small fixes/clean-ups after the commits from 2005-12-28

2005-12-28 (CVS):
    * added a USE_INTEL_ASM build flag which joins in deciding the value
      of id386 and, apparently, intel assembly usage.
      without the -DUSE_INTEL_ASM flag, the opengl version builds and runs
      just fine, but the software version still needs fixing.
    * the autorepeats patch I applied used does work all times but with this
      exception: when not connected (either to a remote or through loop, aka
      single player), the menu system and keys code does specifically not set
      key_console: start hexen2 and press escape, you'll have the full-screen
      console, but "it doesn't count" for the game, key_dest != key_console .
      I am not sure about the reason for this yet, so here is a hack for auto
      repeats to work in such cases, as well. any better solutions?
    * bound the scroll-to-top/scroll-to-bottom keys to ctrl-home/ctrl-end
      instead of shift-home/shitf-end. the latter used to work only in
      fullscreen console, not in the in-game console.
    * implemented partial tab completion: added char **buf, and int pos
      arguments to the command lister functions. they will no longer print the
      matches unless the buf argument is NULL. this way, command completion
      will collect all the matches and print them at its will. this also allowed
      implementing partial tab completion: typing men and pressing tab will no
      longer stupidly stay at men, but will partially auto complete to menu_,
      now.
    * cleaned up the console tab completion:
      - removed duplicate and unnecessary code, hopefully more readable now.
      bug fixes:
      - fixed edit line not resetting to emptiness when returning from history
        by the down-arrow key
      - fixed earliest history being displayed as an empty line when using the
        up-arrow key (from QIP)
      - fixed null-termination issues in partial completion where after first
        displaying the history command lines (up key) and then going back to the
        edit line (down key) the latest history got appended to the completion
        (this bug was only visable after fixing the first mentioned bug above)
    * added Steven's ShowList as a console function. prints a given list to the
      console with a columnized formatting. ported from Tyrann's tyrquake tree.
    * columnized the output from command completion. from Steven
    * added COM_StrCompare as a quick'n'dirty string comparison function for
      use with qsort
    * sort the tab-completions (COM_StrCompare) before listing them
    * made COM_CopyFile return int and added ferror() calls after every fread()
      and fwrite() calls, so that CL_CopyFiles can behave correctly under unix.
      made SaveGamestate return qboolean, replaced the silly "ERROR: couldn't
      open" message by goto retry_message calls. made Host_Savegame_f to return
      immediately upon SaveGamestate failure.
    * added "maps" command to list all the maps in the searchpath. from Steven.
      shortened and modified by O.S. to use fnmatch instead of scandir and to
      make win32 to list maps not residing in a pakfile.

2005-12-15 (CVS):
    * updated the documentation

2005-12-14 (CVS):
    * fixed my brain damage in sys.h

2005-12-11 (CVS):
    * replaced some broken code in GL_Upload8 with code taken from quake2
    * synchronized different sbar function names between h2 and h2w.
      there was a mess about SB_Changed and Sbar_Changed in h2w, this
      patch fixes that: h2 (and h2w) version of SB_Changed was never
      functional. h2w actually called SB_InvChanged, who knows what
      the original intention was, but that seemed serving to no purpose
      to me. in any case, watching for any new weirdness in h2w would
      be advisable. ability string indexes for the demoness and dwarf
      classes in h2w are fixed. armor class display in h2w is fixed.
      h2 and h2w versions of gl_vidsdl and gl_vidnt are synchronized.
    * updated the software sdl renderer: removed a lot of unnecessary
      things which aren't of use in its current state with no mode
      switching feature. it now follows the same style as in the sdlgl
      version. placed D_BeginDirectRect and D_EndDirectRect bits taken
      from quakeforge, so the rotating skull now works. the loading
      plaque now works in fullscreen modes, which it didn't before.
    * added menu.c arguments to gl version of Draw_TransPicTranslate, and
      macroized M_DrawTransPicTranslate accordingly. this synchronizes h2
      and h2w versions of gl_draw.c
    * ported all of Pa3PyX' changes in hexen2/vid_win.c to hexenworld
    * fixed win32 window restore bug that prevented the screen from being
      updated
    * win32 wheelmouse cleanup
    * killed a compiler warning in in_win.c

2005-12-06 (CVS):
    * updated the 3dfx gamma library to v0.0.3 and added a version
      that can be compiled into an application

2005-12-05 (CVS):
    * fixed compilation of gl_vidnt.c (missing semicolon)

2005-12-04 (CVS):
    * made com_basedir global
    * updated the vsnprintf stuff
    * updated the gamma stuff
    * updated gl library dlopen()ing
    * init stuff cleanup
    * added some hints to README.3dfx about using
      the fxMesa library with games without any
      user-specified opengl library support

2005-11-23 (CVS):
    * hopefully fixed bsd compilation of net_dgram.c
    * changed USE_MIDI definition usage with a NO_MIDIMUSIC definition
    * Major build system update. Includes a workaround for a gcc4
      problem we have been encountering.

2005-11-05 (CVS):
    * better tab-completion: fixed an off-by-one error in deciding
      whether we are in inline-edit mode; made it to report the match
      count if there are more than one matches; cancelled auto-completion
      to the first possible match unless there is only one
    * renamed win32 resource files to win32res.rc, adjusted the makefiles
    * removed dead code using the dead segmentCount variable
    * fixed gcc4 signedness warnings in hexenworld/Server/sv_main.c,
      matched the sv_highchars code to to that of quakeworld
    * fixed some gcc4 warnings

2005-11-02 (CVS):
    * shortened midi file opening for SDL_mixer. the midi cache
      will be directly under <com_userdir>/.midi from now on.
    * set host_hunklevel before execing hexen.rc
    * updated hexen2 version of Cvar_CompleteVariable
    * updated Cvar_RegisterVariable of hexen2 from hexenworld.
      replaced strcpy() in there with a strncpy().
    * killed a silly quake left-over code in Host_Startdemos_f
    * more checks for coop and deathmatch not be set at the same time
    * noexit is supposed to matter only for deathmatch, not for coop
      and singleplayer
    * CheckRules (timelimit and fraglimit) is supposed to matter only
      for deathmatch, not for coop and singleplayer
    * fixed a typo in misc_fireball() (from QIP)

2005-11-01 (CVS):
    * set the playerclass cvar default to paladin. that way, a new
      installation of original hexen2 shall not fail when run first
      time using a +map X commandline argument.

2005-10-22 / 30 (CVS):
    * added list commands for cvars and aliases (cvarlist and
      aliaslist.) changed the old command lister name from list
      to cmdlist.
    * implemented console tab completion
    * adapted insert/overwrite mode console editing by Radix (see at
      quakesrc.org). overwrite mode is default, INS key will toggle
      insert mode. changed the cursor blink to underscore/full-square.
      adapted the tab-completion code to mimic bash style completion.
      changed HOME and END keys' behavior, old habit of displaying the
      topmost/endmost history page is accomplished only when the shift
      key is pressed along, otherwise the cursor will be moved to the
      first/end position.
    * bugfix: set the gl_texlevel before execing hexen.rc, otherwise
      a +map xxx console command shall end up with a broken display.
    * unified the cmd layer of hexen2 and hexenworld
    * round to nearest value, rather than rounding toward zero while
      sending angles and coords. (from the darkplaces project where
      it fixes the crosshair problem.)
    * added a STRINGIFY macro. unified version macros. simplified
      version printing. simplified and enhanced version watermark
      print onto console background. added HoT lines to the quit menu
      (shameless plug)
    * started making local functions static, killing nested externs,
      and const vars clean-up. still not finished even halfway, more
      will follow.
    * fixed "might be used uninitialized" warnings for xyfact and zfact
    * fixed "bestmatch might be used uninitialized" warning, although a
      better understanding is necessary for it.
    * added a missing break in CL_ParseServerMessage of hexen2.
    * fixed those double semicolons.
    * moved d_ifacea.h to <topdir>/asm. the nasm files arent actually
      using it now.
    * fixed a bug causing Draw_EndDisc() to return unconditionally
      without doing anything. coding style is not just cosmetics..
    * syced h2 and h2w versions of D_DrawSurfaces
    * killed pointless calls to D_EndParticles and D_StartParticles
    * killed Draw_DebugChar
    * added a prototype for Draw_Crosshair to draw.h
    * fixed a typo in Sys_error message of FindColor
    * probably a few other clean-ups here and there.
    * a lot of whitespace and coding style clean-ups.

2005-10-21 (CVS):
    * added support for systems without OSS sound.
    * added a paranoid case to S_SoundInfo.
    * killed a few unnecessary sound prints.
    * added more platform defines.
    * added NetBSD and OpenBSD to cd_bsd.
    * merged the gl headers back into glquake.h.
    * merged gl_func_nondl.h into gl_func.h.
    * added a unix makefile option for linking to gl functions at
      runtime, similar to win32 version.
    * hexenworld server shall now flush its logfiles upon every print.
    * made key repeats work.

2005-10-16 (CVS):
    * added math optimization flags to utilities and
      hwsv CFLAS. they are now compiled for i586.

2005-10-14 (CVS):
    * Updated the documentation for sound problems and workarounds

2005-10-13 (CVS):
    * net_wipx.c: fixed wsipx.h include for lcc
    * net_wins.c: conditionalized win32 socklen_t define to non-winsock2 case
    * net_dgrm.c: used standart headers for unix
    * net_udp.c: made UDP_MakeSocketBroadcastCapable static
    * net_udp.c: cosmetic clean-up
    * net_udp.c: removed unnecessary prototypes
    * net_udp.c: close the socket by UDP_CloseSocket in UDP_OpenSocket failures
    * net_udp.c: quietly absorb empty packets
    * hexen2/net_wins.c: mostly cosmetic clean-ups
    * net_wipx.c: clean-ups
    * hexenworld/net*: added ip interface binding option (-ip xxx.xxx.xxx.xxx)
      to hexenworld server. added sanity checking to and fixed the off by one
      error in -ip option of the master server.
    * opengl: moved gl_lightmap format setup to GL_Init
    * gl_rsurf.c: added a missing glDisable(GL_BLEND) for multitextured rendering
      (from Michal Wozniak.)
    * menu.c: M_ScanSaves() and M_ScanMSaves() should actually use com_savedir,
      not com_userdir. By default, they are the same but this is for correctness.
    * hexen2/cl_tent.c: added comment: why break in the middle skipping dlights??

2005-10-03 (CVS):
    * Fix glows of floating models (eg. mana) not floating along with the
      model. Also a fix intersecting of mana boxes with glow. from Michal
      Wozniak.
    * changed hexenworld server log filename from qconsole.log to hwsv.log

2005-10-02 (CVS):
    * killed -Wshadow warnings
    * killed lcd_x and lcd_yaw (the stereoscopic stuff.
      never tested, never used.)
    * removed unnecessary scitech mgl headers

2005-09-30 (CVS):
    * removed unnecessary -lm LDFLAG from hwmaster
    * removed unnecessary -lm LDFLAGs from MinGW compilations
    * killed dcc warning about zero-length format string
    * added back the _GNU_SOURCE flag to dcc, required for stpcpy()
    * removed commented-out typedef from dcc (already is in its header
      file)

2005-09-29 (CVS):
    * break the loop from CRC_Block into CRC_ProcessBlock so that crcs
      can be calculated over multiple blocks (from QuakeForge, for future
      use.)
    * hexenworld/Server/pr_edict.c: CRC_Block() now returns unsigned short
    * added major light speedup version of R_MarkLights by Lord Havoc
    * cleaned-up Host_Init and Host_Shutdown stuff. removed unnecessary
      ca_dedicated checks from CDAudio_Init.
    * cleaned-up hash check stuff in GL_LoadTexture. added crc check as
      an alternative (disabled by default.)
    * avoid glhexen2 and glh2mp segfaults when run as dedicated server

2005-09-28 (CVS):
    * took care of flickering problem while drawing the loading
      plaque (from Pa3PyX.) glFlush is now required. this also
      fixes the problem of loading plaque not being displayed
      when antialiasing is in effect.
    * killed the cvar sys_delay
    * avoid running timerefresh when not connected
    * changed ref value of glAlphaFunc from 0.666 to 0.632 (1 - 1/e) in
      order to avoid clipping of smaller fonts/graphics (from Pa3PyX).
    * renamed ToggleFullScreenSA to VID_ToggleFullscreen which actually
      is of VID_ class and now is easier to locate
    * killed the irritating Poisong_die dprint in hexenworld progs.

2005-09-26 (CVS):
    * flush the command buffer before setting host_initialized to true
    * update the vid_modes only after host_initialized is set to true.
      fixes the issue about correct resolution setting from config.cfg
      not being restored for the win32 software version.
    * merged a few safe fixes of Pa3PyX from hexen2 to hexenworld vid_win.c
    * whitespace and indentation fixes in vid_win.c
    * updated the list of known bugs
    * updated the todo list

2005-09-25 (CVS):
    * fixed a bunch of compiler warnings
    * fixed and activated start-up splash screens of the win32
      version for mingw. removed the ms vc versions
    * widened text splash window for hexenworld to fit
    * different splash text fon h2 h2mp and hexenworld

2005-09-23 (CVS):
    * fixed win32 software version's linkage: added proper libmglfx.a
      for mingw (generated by pexports and dlltool). link against our
      libmglfx.a  with -lmglfx, instead of linking against mglfxi.lib
      with -lmglfxi. added mgl-4.05 redist files to the cvs.

2005-09-21 (CVS):
    * added cross compilation support on unix for the win32 version
    * removed backslash dir separators from hexenworld includes: they
      used to break cross compilation

2005-09-20 (CVS):
    * Moved VERSION_PLATFORM and id386 defines to sys.h, where they belong.
    * Sys_Quit and Sys_Error clean-up: VID_SetDefaultMode, VID_ForceLockState and
      VID_ForceUnlockedAndReturnState are history. Host_Shutdown is called before
      quit/error messages. Placed SDL_UnlockSurface() and MGL_endDirectAccess()
      to VID_Shutdown, just in case. Added the word "HexenWorld" to win32 version
      of hexenworld error window label. Took care of some accidentally repeated
      code. "Fatalized" and added extra linefeeds to the sys_error messages.
    * Fixed hwsv compilation (killed Server/sys.h).

2005-09-19 (CVS):
    * startings of model code unification. mostly cosmetic for now,
      more will follow.
    * fixed a check for isDedicated in Host_WriteConfiguration which
      should be logical
    * added missing newline
    * prevent unnecessary extra zeroes in cvars (from Maddes / QIP)
    * fixed a divide-by-float (matched the software renderer counterpart)
    * can't kill zombie patch (from Maddes / QIP)
    * prevented (in fact, partially) coop and deathmatch cvars being
      both set at the same time (from Maddes / QIP)
    * allowed compilability of the ipx driver with lcc
    * fixed an error message: "MOVETYPE_PUSH with a non bsp model"
      (from Maddes / QIP)
    * When a velocity is checked against sv_maxvelocity the Quake engine
      checks the vector's components (x, y, z) instead of it's resulting
      length. The check should be done just like the sv_maxspeed check.
      (From Maddes QIP)
    * fixed those famous spelling errors

2005-09-17 (CVS):
    * minor ifdef, syntax and defines clean-up
    * removed unnecessary stuff from launcher's Makefile

2005-09-14 (CVS):
    * Fixed win32 version for dlsym'ed gl and wgl function calls
    * Cleaned-up h2/h2mp friction code
    * Added stencil buffered shadows (from jshexen2, code by MrG)
    * Added stencil shadow console option to the READMEs
    * Used the same name for the EffectsT union of hexenworld as hexen2
    * Renamed hwmaster/net_test.c to a more sensible sys_main.c
    * Updated the TODO list
    * Moved qtypes.h to 00_unused
    * Inserted win32 installation instructions to README.win32
    * Documentation tidy-up: Moved all gpl license files into the
      docs directory; moved README.hwmaster to the docs directory;
      renamed hcc.txt of dcc to a more sensible dcc.txt

2005-08-29 (1.3.0-final):
    * released as 1.3.0-final
    * update_h2.sh: updated the pakfile patch script to use OS specific
      versions of loki_patch binary.
    * hexen2.spec: updated according to the final loki_patch package
    * Makefile.unix: fixed static linking and explained the requirements
      for it
    * updated TODO list
    * README: added details for manual installation and patching
    * README, README.demo: added requirements info for glibc
2005-08-22/23:
    * cl_tent.c, (gl_)screen.c: killed some stupid 'may be used
      uninitialized' warnings
    * net_chan.c, sv_main.c: fixed two gcc4 warnings of type "pointer
      targets in passing argument N of 'X' differ in signedness"
    * (gl)screen.c, sbar.c, sbar.h: cleaned-up some of the mess part of
      which partially formed after the fullscreen intermissions merge:
      indentation and whitespace fixes, if 0'ed SB_IntermissionOverlay
      and SB_FinaleOverlay of H2W, killed Sbar_IntermissionOverlay,
      Sbar_FinaleOverlay and SCR_DrawLoading of H2W along with associated
      vars. Will probably need more clean-up and unification in future.
    * screen.c: fixed a silly nested extern declaration
    * screen.c: added the missing notes by ID to the H2 version
    * glwin32.h: fixed a typo
    * common.h, cmdlib.h, defs.h: cleaned up endianness macros
    * added ReleaseNotes to the docs folder
    * hexen2.spec: fixed and updateo the rpm spec file

2005-08-20 (CVS, 1.3.0-rc5c):
    * fixed temporary gip files not being removed and probably caused
      "bad" savegames on win32. removed unnecessary platform defines
      for directory path separators. favored unlink() over DeleteFile()
      on win32. removed a left-over CL_RemoveGIPFiles() from sys_win.c.
    * more finishing touches before 1.3.0-final:
    * added dummy files to some empty directories to avoid build failures
    * copied over endianness stuff from engine trees to the utils
    * utils: removed unnecessary -lm from dcc
    * killed unused dosisms.h header (win32/in_win.c)
    * utils: killed unused stuff in dcc
    * utils: some other minor cleanups
    * moved more unused files to 00_unused

2005-08-19 (CVS, 1.3.0-rc5b):
    * finishing touches before 1.3.0-final:
    * killed erroneous extra comma in snd_win.c
    * replaced Makefile.packaging with Makefile.unix, updated build
      scripts and rpm spec file, added hexenworld build_all scripts,
      added build_win32 scripts.
    * use the same exe names as Raven's versions for win32
    * unix style line endings for more gamecode files
    * replaced gnu.txt with a readable (line-wrapped) version from
      gnu.org for hwmaster

2005-08-18 (CVS, 1.3.0-rc5a):
    * moved music volume update back into frame update. it has its
      merits (such as correct bgmvolume on startup) this way..
    * fixed stupid cd music volume update bug
    * sync'ed h2 and h2w versions of cd_win.c

2005-08-17 (CVS, 1.3.0-rc5):
    * Fixed R_DrawViewModel to not return until it determines the
      light_level, otherwise the player will be considered invisible
      to the monsters.
    * Standardized SDL_mixer includes
    * Makefile fixes for hexenworld server
    * Updated win32 build instructions.
    * Updated the rpm spec file according to the names of the files
      to be released

2005-08-12 (CVS, 1.3.0-rc4a):
    * updated all build scripts for freebsd gmake problem (Steve)
    * updated sdl includes of midi for freebsd (from Steven)
    * removed malloc.h from hwmaster. doesn't seem necessary and
      bsd whines with it. (from Steven)
    * loosened SDL version restrictions depending on the SDL version
      on the build system. will issue a warning if less than 1.2.6

2005-08-11 (CVS, 1.3.0-rc4):
    * 1.3.0-rc4. Everything seem to work fine and this should be
      the last -rc before 1.3.0-final
    * performed small cleanups (killing zombie vars and cvars,
      statements with no effect, etc.)
    * const MODE_FULLSCREEN_DEFAULT have different meanings in
      mgl/win32 and others. fixed.
    * made OSS sound include <sys/soundcard.h> only. I'm afraid we
      may need taking care of <soundcard.h>, <linux/soundcard.h> and
      <machine/soundcard.h> someday.
    * removed the -O2 from win32 assembler flags to avoid
      miscompilation
    * added mgl headers and link libraries and enabled win32 builds
      of the software renderer version. The hexen2 version has
      Pa3PyX's bits merged into it whereas the hexenworld one is
      more true to its original (they need to be unified in future.)
      Original win32-software versions of both hexen2 and quake
      always used to crash on my box, but now works nicely with
      mgl-4.05. Only a few small quirks are present which can be
      fixed in future versions.
    * updated the rpm spec file

2005-08-09 (CVS, 1.3.0-rc3):
    * Prioritized a game directory over its pakfiles in the search
      order which is the behavior of HoT-1.2.4 and older. This bug,
      carried over from hexenworld, disallowed override files to be
      used. The ID guys probably had their concerns while doing this,
      which Raven did change in hexen2 but missed in hexenworld.
    * Added the missing part of Steven's CL_UpdateStreams crash patch
    * Disallowed cycling to a weapon without proper mana (from Steve)
    * Enabled impulse 34, (puzzle piece inventory list) (from Steve)
    * Added default.cfg override files according to the latest changes
    * Updated the gamecode README file

2005-08-08 (CVS, 1.3.0-rc2):
    * Fixed the longstanding StreamEntities crash bug: the compiler
      should have been picking up inappropriate nested loops. Steve,
      you are the man ;)
    * Updated cdaudio init messages
    * Killed the Sys_FileTime crap. now using the standart access()
      function

2005-08-05 (CVS, 1.3.0-rc1):
    * hcc: made main's return type int.
    * hcc: made progs.dat and progdefs.h filenames honor -src option.
    * hcc: no need to write source directory name (from -src option)
      into strings
    * updated the rpm spec file for 1.3.0

2005-08-04 (CVS, 1.3.0-rc1):
    * enough changes went in, therefore let's bump the HoT version
      to 1.3.0, hexen2 engine version to 1.14, hexenworld to 0.16
    * sound: fixed hexenworld not initializing sound on freebsd
      (from Steven.)
    * menu: removed some outdated stuff (lookspring and lookstrafe
      options and +mlook and +klook key bindings) from the menu
    * buildsystem: platform defines cleanup
    * buildsystem: debug defines clean-up
    * buildsystem: compiler flags for debug builds
    * buildsystem: added X11FLAGS for X11 includes. should help
      distros that doesn't have symlinked /usr/X11R6/include/GL as
      /usr/include/GL
    * vid: added support for window manager icon using xbm format
      data. stolen from the quake2 project at icculus, code probably
      by relnev (Steven Fuller)
    * hexenworld: tiny update for failure cases of NET_SendPacket
      and NET_GetPacket
    * hexenworld: disabled Raven/RJR privilege in rcon validation
    * hexenworld: disabled idmaster logging
    * hexenworld: disabled more Raven privileged stuff in SV_Say
    * hcode: map cycling: renamed map_name to a more intuitive
      map_next. cleaned up some dprint's.
    * hcode: killed unused hcode files, moved them to a separate
      directory for reference
    * hcode: minor clean-up in hw and siege
    * code clean-up: tidy up cl_tent.c of hexenworld (from Steve)
    * code clean-up: probably some other tiny clean-ups.
    * documentation: added draftish notes on porting. updated
      all dother documentation.

2005-07-24 (CVS, 1.2.5-pre11):
    * it seems like reducing the number of lightning streams to 8
      is not a good enough workaround for hexenworld client crash:
      Updated docs/BUGS with a detailed description of the problem,
      put the variable StreamEntities[] back in  for good binaries
      compiled with gcc3
    * hopefully fixed bsd cdrom compilation this time
    * fixed midi not playing when midifile exists in the searchpath
      but not in com_userdir/<mod_dir>/.midi
    * re-fixed sdl-midi for better handling of file size
    * unified the common functions for hexen2-hexenworld (big patch,
      so please be on watch for anything broken)
    * increased hexen2 minimum zone size to 256 KB to match that of
      hexenworld's in order to handle the new changes
    * added check for mkdir return code in userdir creation in
      hexenworld master server
    * made Sys_mkdir of the launcher use $HOME instead of the
      passwd struct
    * we may actually need a real Sys_mkdir in hwsv, so added one
    * merged com_sys stuff back into main.c in launcher
    * fixed gl_warp of hexenworld to give 3 args to COM_FOpenFile
    * hexenworld server seemed to have sent the wrong message for
      the cdtrack resulting in no cd music playing. fixed.
    * I seem to have missed one place for linux-only alsa sound
      conditionals which resulted in compile failure on bsd. fixed.
    * separate icons for hexen2 and hexen2mp
    * compile win32 resource as .o, not .res.  makefile fixes for
      the new icon directory.
    * killed the unused visualc stuff
    * misc whitespace clean-ups

2005-07-20 (CVS, 1.2.5-pre10):
    * killed fastfabs, not worthy of keeping anymore
    * made vid_initialized static
    * allowed mini-status when sbar transparency is set, for now
    * added transparent sbar of hexenworld to hexen2 for software mode.
      style fixes in draw.c, draw.h, sbar.c, sbar.h.
    * added the gl_texels console cmd to hexenworld as well. added some
      H2MP and H2W define conditionals.
    * partial fix for hexenwold crosshair 2: send the texture to
      GL_LoadTexture in non-rgba mode. it still won't show up unless the
      game is started with a proper conwidth value.
    * added crosshair 2 support of hexenworld to hexen2.
    * added 32x32 alpha pixmap support from darkplaces project which
      "fixes" the crosshair 2 support. chances are that things maybe
      incomplete here, but I don't care much. (this actually is hiding
      our actual bug where 8-bit upload somehow clobbered the crosshair
      texture.)
    * added crosshair color from quake. performed some small cleanup. I
      hope I won't have to bother with this thing anymore.
    * the crosshair we have here is actually the QuakeWorld crosshair
      which Raven didn't bother changing. it is possible to make class-
      based crosshairs.  our crosshair is now 32x32, but we're drawing in
      16x16 to have a smaller pic. if, in the pixmap, the pixels are not
      drawn in doubles, the final image on the screen may have some of
      the pixels missing. sigh...

2005-07-15 (CVS, 1.2.5-pre9):
    * fixed typo in cd_unix.c for freebsd
    * added a makefile hack to prevent hwsv or hwcl build failures when
      either of them is built first and then the other is attempted to
      be built without doing a make clean
    * documented the modified/unmodified detection
    * updated README.3dfx (the -3dfxgamma argument requires HoT-1.2.5
      and newer)
    * updated BUGS (insignificant typos, etc.)

2005-07-09 (CVS, 1.2.5-pre8):
    * fixed some string length oversights in zone.c.
    * macroized the repetitive console+file printing routines
      for sys_* console commands.
    * added hexen2 version of zone.c to hexenworld.
    * changed all Hunk_Alloc() usage to Hunk_AllocName() for
      easier memory usage tracing (adapted from Pa3PyX).
    * we now allocate on the hunk (or zone) and don't malloc
      system memory unless necessary.
    * increased hexen2 minimum zone size to 128 kb.
    * put back Q_log2() to mathlib, hunk allocation changes to
      snd_win requires that.
    * tiny fixes/clean-ups in win32 sound which now honors user's
      sampling rate and bps requests.
    * similar cleanups in win32 midi.
    * copied hexen2 version of snd_win to hexenworld.
    * fixed win32-hexenworld clipboard pasting code compilation.
    * added win32 clipboard pasting to hexen2 (from hexenworld).
    * SDL version checking and refusal shall not happen for
      dedicated servers.
    * tiny clean-ups in sys_unix.c.
    * moved local unix version of strlwr to zone.c, its only user.
    * added defines for min, max and default heap and zone sizes
      in the launcher.
    * increased minimun zonesize to 128 in the launcher, as well.

2005-07-05 (CVS, 1.2.5-pre7):
    * removed traces of alsa ancient versions support
    * style/whitespace changes and removal of weird alien stuff
      in zone.{c|h}
    * Updated oss driver (added PROT_READ to mmap mode)
    * Updated sdl sound (added soundinfo to init, various
      insignificant things)
    * Updated alsa driver (various insignificant things)

2005-07-02 (CVS, 1.2.5-pre7):
    * Minor cosmetic clean-up in S_Update_() for S_SYS_SDL
    * Added device selection support (-ossdev) to OSS sound.
      Cleaned-up OSS warning/error messages.
    * Updated documentation for -cddev, -alsadev and -ossdev
      arguments
    * commands.txt and edicts.txt will be saved into com_userdir
    * Cleaned-up file saving in zone.c

2005-07-01 (CVS, 1.2.5-pre6):
    * speed key now acts as slow key when "always run" is chosen

2005-06-28 (CVS, 1.2.5-pre6):
    * Added warning messages to snd_sdl for endianness-format
      mismatches
    * Updated documentation about mouse not being initialized
      in fullscreen games when using fluxbox window manager
    * Updated the demo version's README
    * Tiny cosmetic clean-up in snd_sdl.c

2005-06-26 (CVS, 1.2.5-pre6):
    * Added hexen2's glow code to hexenworld without any changes.
      Not that bad at all considering the changes in hexenworld.
      I won't bother anymore with this myself. If anyone has any
      fixes and/or improvements for it, send it this way.  If it
      broke anything, umm, tell that as well ;)
    * Changed those pointless glow style const ints to defines.
    * Added the intermissionScreen CacheFree code to software vid.
      I have ignored this fragment for a long time due to the fact
      we removed video mode switching, but here it is for possible
      future use.

2005-06-25 (CVS, 1.2.5-pre6):
    * added the lib3dfxgamma sources.
    * added lib3dfxgamma (native 3dfx gamma) support to
      the gl versions, activated for voodoo1 and voodoo2
      when -3dfxgamma argument is used.
    * Bumped the teleport-push speed to a highest safe value
      of 225 (250 is still safe, but just in case)
      and restricted that to the Cathedral map when not in
      deathmatch.  Otherwise, Raven's original value (300)
      is used.

2005-06-23 (CVS, 1.2.5-pre5):
    * several typo/spelling fixes

2005-06-22 (CVS, 1.2.5-pre5):
    * added -O2 -Wall flags to utilities' complilation
    * many warning fixes in utilities, it should be
      gcc4-ready now

2005-06-21 (CVS, 1.2.5-pre5):
    * fixed launcher for gcc2 compilation

2005-06-20 (CVS, 1.2.5-pre5):
    * added -conwidth info to the documentation
    * launcher v0.6.1: added conwidth support, included
      1600 in the resolution list, other tiny clean-ups
    * killed a few ugly win32 warnings
    * killed a leftover Q_strncasecmp function in utils
    * added a replacement stpcpy for non-__GLIBC__ cases
    * added MSYS/MinGW makefiles and build scripts for utilities
    * added _GNU_SOURCE define to dhcc compilation

2005-06-19 (CVS, 1.2.5-pre4):
    * added the -conwidth (and -conheight) commandline switches
      enabling a bigger hud display and readable fonts at high
      resolutions. the fonts will be somewhat distorted, though.
      valid conwidth values are values equal or less than the
      window width, 640 is the sanest.
    * synced h2 and h2w versions of GL_Init_Fuctions()
    * win32 stuff: added wheelmouse support and conwidth support
      to hexen2. changed hexenworld's default behavior of default
      640 conwidth to main width unless specified otherwise by the
      user. disabled startup splash screens for now. compile the
      icons in. sycned hexen2 and hexnworld's GL_Init_Functions().
      disabled InitCommonControls() in gl_vidnt. moved
      RegisterWindowMessage for uMSG_MOUSEWHEEL to in_win where
      it belongs. bumped MAXIMUM_WIN_MEMORY to 32 MB. killed
      useless Sys_ConsoleInput in hwcl. several other sycning and
      clean-up.

2005-06-17 (CVS, 1.2.5-pre4):
    * many fixes/clean-ups to the Makefiles
    * several gamma clean-ups, spelling fixes
    * inline fixes in mathlib.h
    * moved gl_max_size and is_3dfx to gl_vidsdl, others
      will use it as externs
    * fifth (succubus) model in hexen2 is for the mission
      pack only and we've been out of bounds in four places
      for ages, fixed it
    * killed the glfunc struct for opengl funtion pointers
    * added a cleaner com_userdir solution for hwsv in
      SV_Gamedir_f()
    * more endianness detection fixes
    * properly ifdef'd unix-only sound things
    * strlwr extern in zone.c is for unix only
    * made Sys_mkdir int for win32 as well
    * restored the game's old userdir behavior on win32
    * fixed many win32 compile failures and warnings
    * restored opengl version's compilability on win32
      using MinGW under MSYS

2005-06-11/12 (CVS, 1.2.5-pre3):
     * cleaned-up includes and hopefully fixed endianness detection
     * enabled alsa only on linux platforms
     * updated all makefiles and build scripts. now I can happily
       do make CC=xxx ..., make/gmake issue should also be fixed.
     * updated cd_linux
     * added cd_unix as a wrapper and a cd_null
     * updated known bugs
     * added a version of cd_bsd: hopefully correct, cannot test its
       functionality right now. it is not used directly but intended
       to be included automagically into cd_unix.c at compile time.
       not enabled right now but be trivially done so by editing the
       makefiles
     * changed all strcasecmp to Q_strcasecmp in unix cdrom code for
       consistency
     * open the cdrom device with O_NONBLOCK in order to prevent
       CDAudio_Init failing when there is no disc in drive
     * misc cdaudio spelling fixes
     * added SDL cdaudio code (from SDLquake with fixes & adaptation)
     * enabled the use of cd_unix.c which includes the correct cdraudio
       code: If USE_SDLCD is set to yes in the makefiles cd_sdl.c will
       be used; otherwise cd_linux.c for linux, cd_bsd.c for freebsd or
       cd_sdl.c for any others.

2005-06-10 (CVS, 1.2.5-pre2):
     * Cleaned up and redesigned the launcher, Version 0.6.0:
     - The "More" mode uses tabs on the right for more bloat
     - Removed -sndmono option
     - Added support for --gllibrary, -3dfxgamma, -fsaa, -vsync,
       -paltex, -nomtex, -nomouse, -heapsize, -zone, -condebug
     - Maybe I add a space for custom arguments one day

2005-06-09 (CVS, 1.2.5-pre2):
     * [launcher] fixed a truely silly typo which is responsible for
       the longstanding "Gtk-CRITICAL **: file gtkwidget.c: line 6502
       (gtk_widget_unref): assertion `GTK_IS_WIDGET (widget)' failed"
       error message upon exitting.

2005-06-08 (CVS, 1.2.5-pre2):
     * Help messages drawn fullscreen for software version, as well
     * Added texture cheksumming (from Pa3PyX) for verification in
       GL_LoadTexture. Die white textures, die die die ;)
     * Ported fullscreen intermissions code to hexenworld.
     * Some more hexen2/hexenworld code syncing.

2005-06-07 (CVS, 1.2.5-pre2):
     * Moved flush_textures decision to svmain.c:SV_SpawnServer()
       again, this time fixing it by not clearing the server struct
       in Host_ShutdownServer(). In fact this logic is still slightly
       flawed, because flush_textures isn't set on map changes in
       client-to-remote server map-change situations.
     * Ported gl texture purge and model recycling code to hexenworld.
       Textures are purged regardless of mapname change (we can't
       detect it early enough), but servers normally wouldn't repeat a
       map anyway.
     * Removed my incorrect paranoia alert in cache mismatch code:
       No paranoia, because gl_purge_maptex may well be false, and
       flush_textures doesn't work for map changes in client-to remote
       server connections.
     * Fixed crosshair texture ("crosshair 2") not shown in hexenworld
       (was a typo while porting GL_LoadTexture changes)
     * Removed a lot of unnecessary/obsoleted files
     * Updated documentation to the state of 1.2.5-pre2 / 2005-06-07

2005-06-06 (CVS, 1.2.5-pre2):
     * fixed alsa minimum required version detection
     * put some notes on decision behavior for -sndspeed argument
     * put my usual requested/obtained sndrate mismatch warning
       in snd_sdl, as well
     * ChaseCam clipping and pitch fixes from quakeforge and
       quakesrc.org (FrikaC). Still not perfect, but much better
       than what we previously had.
     * mlook and lookspring fixes by J.Krige
      ( http://www.quakesrc.org/tutorials/old/1 )
     * considered as 1.2.5-pre2.

2005-06-05 (CVS, 1.2.5-pre1):
     * patches I've been forgetting for quite some time:
     * use GL_LoadTexture for player, particle and sky textures,
     * prevent Z fighting in shadows,
     * increase MAX_MOD_KNOWN for sofwware version as well,
     * enable the irritating water-warp only by a cvar and add
       water-ripple code of Jacques Krige.

2005-06-03 (CVS, 1.2.5-pre1):
     * Latest mouse fixes and clean-ups
     * Updated gamma stuff. Enabled gl-gamma trick to work if all
       else fail (such as in cases of Voodoo1/2). IMO, the gl-gamma
       trick looks very ugly and causes a 5 fps slowdown in 1x
       brightening and 10-12 fps in 2x brightening on my Voodoo2
       box. We'll see..

2005-06-01 (CVS, 1.2.5-pre1):
     * SDL version >= 1.2.6 is now required. Updated the READMEs
       and added a version check at startup.
     * removed win32-only net function prototypes from linquake.h
       and updated linux_inc.h. also moved win32-only ipx netcode
       (this should fix the silly compile errors on bsd.)
     * updated a comment in Client/cl_main.c

2005-05-31 (CVS, 1.2.5-pre1):
     * ported player menu-texture handling, GL_LoadTexture
       and gl-filter changes from hexen2 to hexenworld.

2005-05-30 (CVS, 1.2.5-pre1):
     * updated commandline help display
     * removed obsoleted mkdir from hexenworld's Host_Init
     * added version and help strings to hwmaster
     * lowered the upper heapsize to 64 Mb for hwsv
     * version and help strings for hwsv (not much in help, but...)
     * moved hexenworld HOT_VERSION defines to bothdefs.h
     * consider this as 1.2.5-pre1

2005-05-29 (CVS):
     * Merged skyalpha of hexen2 to hexenworld
     * Added 2-tmu multitexture support (extracted from jshexen2):
       Doesn't work well with fxMesa (Voodoo2): "Unexpected dual
       texture mode encountered" all the time: Voodoo driver doesn't
       support many mtex modes (same goes for 3dfx DRI drivers). The
       particular problem we have is GL_MODULATE/GL_BLEND mode not
       being supported. GL_MODULATE/GL_DECAL is also missing which
       the patch uses for sky
     * Ported texture scale/upload and 8-bit extension functions of
       hexenworld to hexen2. This cures some corrupted textures while
       using paletted textures in hexen2
     * Killed gl_texsort (thus, R_DrawSequentailPoly & co) which was
       fairly broken
     * Reverted AoT changes to hexenworld's gl_rsurf
     * Synced some function and define names between h2 and h2w
     * A lot of whitespace clean-ups

2005-05-25 (CVS):
     * enabled mouse in whole of the options menu group
     * added basic multisampling support (GL_ARB_multisample),
       activated with -fsaa N. That D_ShowLoadingSize doesn't
       display anything with this on is the only issue
     * moved Mesa environment variable handling to gl_vidsdl where
       they belong
     * added a cmdline switch to enable vsync for nvidia users
     * made gl_vidsdl report stencil size as well
     * updated command-line help display
     * updated README for cmdline switches and tweaks
     * fixed small typos in README.3dfx

2005-05-23 (CVS):
     * search the mesh cache directly under com_userdir/glhexen,
       not in search_path. fixes the crazy polygons in mods bug.
     * added 3dfx documentation, updated BUGS.

2005-05-22 (CVS):
     * applied sbar fixes to hexenworld
     * changed default viewsize to 110
     * temporary fix for multiplayer episode selection.
       next time we should get rid of these H2MP defines
       and decide in runtime (com_portals from H2W?)
     * killed cvar sys_quake2 (I dont think anyone uses it)
     * conproc.* is for win32 only, moved them

2005-05-21 (CVS):
     * disabled the rotating skull annoyance in GL mode (used to cause
       problems with voodoo1/mesa6 when using gamma tricks)
     * Big mouse fix and clean-up:
     - revived -nomouse that "disables mouse no matter what"
     - renamed _windowed_mouse to _enable_mouse which is our intention,
       that is, dynamically disabling/enabling mouse while in game
     - old code had many oversights/leftovers that prevented mouse being
       really disabled in fullscreen mode. fixed and cleaned-up here
     - even in windowed mode, when mouse was disabled, mouse buttons and
       the wheel got processed. fixed it here.
     - mouse cursor is never shown while the game is alive, regardless
       of mouse being enabled/disabled (I never liked an ugly pointer
       around while playing) Its only intention would be to be able to
       use the desktop, and for that see, the grab notes below
     - if mouse is disabled, it is un-grabbed in windowed mode. Note: One
       can always use the keyboard shortcut CTRL-G for grabbing-ungrabbing
       the mouse regardless of mouse being enabled/disabled.
     - ToggleFullScreenSA() used to update vid_mode but always forgot
       modestate. It now updates modestate as well.
     - Now that IN_ActivateMouse() and IN_DeactivateMouse() are fixed,
       IN_ActivateMouseSA() and IN_DeactivateMouseSA() are redundant and
       are removed. BTW, I added a new qboolean mousestate_sa (hi Steve)
       which keeps track of whether we intentionally disabled the mouse.
     - mouse disabling in fullscreen mode (in the absence of -nomouse
       arg) is not allowed in this patch, but this is done by a if 1/if 0
       conditional compilation. Next patch will change all those if 1 to
       if 0, and voila!, we can fully disable/enable mouse in fullscreen.
     - moved modestate enums/defines to vid.h so that they can be used
       by other code properly.
     * enabled mouse when in console
     * re-enabled complete disabling/enabling of mousa in fullscreen mode
       (only replaced a bunch of if 1's to if 0's)
     * MINIMUM_MEMORY_LEVELPAK was never used, switched
       to MINIMUM_MEMORY
     * don't Sys_Error on bad -port cmdline argument
     * removed net_serial which has been dead for ages
     * synced wm caption code
     * more syncing of h2/hw vid_sdl and gl_vidsdl
     * fixed vid.h for VID_SetMode for win32

2005-05-20 (CVS):
     * Makefiles clean-up
     * synced h2 and hw versions of sound.h, moved
       two defines to protocol.h where they belong
     * synced h2 and hw versions of cd_linux.c (use the new H2W define)
     * synced h2 and hw versions of snd_dma.c (use the new H2W define)
     * synced h2 and hw versions of crc.c and crc.h
     * synced h2 and hw versions of midi stuff
     * save cache.txt and stats.txt into com_userdir
     * removed all unused IDGODS code
     * removed all unused (never used) non-RJNET and non-QUAKE2RJ code
     * removed all unused (never used) RJNETa and RJNET2 code
     * killed client->privileged (was only available to IDGODS)
     * initial syncing of common.c between h2 and hw: a lot of
       whitespace clean-up, removal of activision secure stuff,
       removal of -path, -proghack, -savedir and -cachedir support,
       better registered version detection and crc checks, etc.
     * removed some windows left-overs from sys_unix
     * separated winquake.h into winquake.h and linquake.h
       changed all occurances of winquake.h to quakeinc.h,
       which includes the correct header
     * keep ID style in declerations (less diff between h2/h2w...)
     * initial slight gl syncing: stripped the platform spesific
       stuff out from glquake.h into glxunix.h and glwin32.h
     * killed unused c_sky_polys in h2

2005-05-18 (CVS):
     * (Re-)added the parms.userdir to all sys_win.c. The platform
       conditionals around some of the com_userdir code of late are now
       unnecessary.
     * separated sys_unix.c and sys_win.c of hwsv to avoid many confusing
       conditionals
     * hopefully restored utils' compilability on win32: platform
       conditionals for includes; Q_strXcasecmp is now only for non
       __GNUC__, otherwise strXcasecmp is used.
     * updated mathlib.* of the utilities (removed underscored versions
       of the functions. dhcc doesnt even use the mathlib, updated its
       makefile...)
     * cleanup of "stricmp, strcmpi, strnicmp, Q_strcasecmp, Q_strncasecmp"
       mess: Q_strXcasecmp will now be used throughout the code which are
       implementation dependant defines for __GNUC__ (strXcasecmp) and
       _WIN32 (strXicmp)

2005-05-17 (CVS):
    * removed underscored versions of string comparison functions
    * removed unused underscored versions of math funcs
    * Q_strXXXXX is now only for !PLATFORM_UNIX
    * macroized some math functions (from Pa3PyX)
    * synced h2 and hw versions of mathlib.* (h2 now has some math
      functions inlined)
    * updated linux_inc.h for the changes above
    * removed unused backingbuf from vid_sdl.c (was a windows leftover)
    * removed some dead platform conditionals
    * reorganized x86 assembly files placement (shuffle practice ;)
    * initial cosmetic cleanups in menu.c and in_sdl.c
    * more obsoleted and/or win32 files clean-up

2005-05-07 (CVS):
    * Backed-out my silly mistake of removing light_level code
      in R_DrawViewModel
    * SV_StartSound should set SND_OVERFLOW, not SND_ATTENUATION.
      sound_num should be incremented/decremented by 256, not 255.
      (ran into this in quakesrc.org tutorials, by Kor Skarn, iirc)
    * Display platform in console background
    * [Hexenworld] Don't refuse to connect upon client/server VERSION
      mismatches. Such things should rely on PROTOCOL_VERSION not simply
      VERSION
2005-05-05 (CVS):
    * [hexenworld] save downloaded files to com_userdir
    * [h2/hw] profile save cleanup (and another MAX_OSPATH fix)
    * [opengl] report both requested and set video modes (matters for bpp)
2005-05-04 (CVS):
    * [launcher] cleanup the i++ mess and bump version slightly (v0.5.1)

2005-04-30 (CVS):
    * Always set the MESA_GLX_FX FX_DONT_FAKE_MULTITEX environment
      variables
    * "Fixed" (in fact, worked-around) Succubus' lightning weapon
      crashing the client if gcc4 compiled client is used, and/or
      the unused StreamEntities[MAX_STREAM_ENTITIES] is removed.
      Weird case..
    * Fixed hexenworld master server compile failure with gcc4
    * Socket length args of recvfrom and getsocklen should be of
      type socklen_t, not int (thanks go to gcc4)
    * Fixed two instances of the warning "dereferencing type-punned
      pointer will break strict-aliasing rules". Playing loose with
      pointers may not be safe
    * Fixed a statement with no effect in cl_tent.c of hwclient
    * Fixed an obscure demo playback bug which caused a fake freeze-
      like appearance when no next demos were found
    * Re-enabled fadescreen for fxMesa driver
    * Fixed a lot of gcc4 warnings about signedness mismatches
    * Silenced many instances of shadowed declarations
    * Removed a bunch of code from R_DrawViewModel(). R_DrawAliasModel()
      already does those things.
    * Removed int texture_mode which seemed to serve nothing
    * Changed texnum member of gltexture_t to be of unsigned int
      type rather than int (fixes a gcc4 warning)
    * Removed unnecessary global decl. of starttime in sys_unix.c
    * Switched to GL_EXT_shared_texture_palette and enabled paletted
      textures in hexen2. For paletted textures to work, the -paltex
      cmdline must be specified for both hexen2 and hexenworld.
    * Applied a big video cleanup patch:
    - Removed a lot of windoze left-overs, unused variables/cvars,
      functions using those vars/cvars serving no purpose (esp. those
      window_rect and window_center stuff, and more). There still are
      things in vid_sdl.c that need to be fully understood, they are
      there, for now.
    - The -window and -w cmdline args are now now removed: They did
      nothing, unless someone did some silly thing like using both -w
      and -f on the same cmdline.
    - The two mode-setting functions (windowed and f/s) are merged
    - The -height arg now is functional only if used in combination
      with -height. Since we only do normal modes, the width switch
      is replaced with the calculation  height = 3*width/4. Issue: We
      need some sanity check in case of both -width and -height args
      are specified
    - -bpp wasn't written into modenum[x].bpp, I did it here. As a
      side note, bpp doesn't affect anything, anyway.
    - The vidmode reporting code now displays the actual bpp value
      being set by SDL.
    - The code used to call VID_SetPalette() very multiple times in
      gl_vidsdl.c, they are now unified in VID_Init: After VID_SetMode,
      VID_SetPalette is called first, and then 8-bit palette if -paltex
      is specified. Note: Didn't touch vid_sdl.c in this manner, but DDOI
      (one of the guys during Dan's porting, perpahs) has a comment on
      a VID_SetPalette call being "Useless?"...
    - Updated gamma stuff: We don't use gamma ramps (in fact we can, we
      have SDL_SetGammaRamp), therefore eliminated V_CheckGamma & friends
      from V_UpdatePalette for PLATFORM_UNIX. Also killed unused function
      WarpPalette.

2005-04-15 (CVS):
    * Added working console input (from hexenworld server).
      Disabled console input in non-dedicated mode.
    * No dedicated server possible in hexenworld client.
    * Save memory.txt into com_userdir for sys_memory cmd.
    * Cure warning: cl_main.c: warning: `return' with no value,
      in function returning non-void
    * Shut up the compiler: gl_rsurf.c, gl_draw.c: warning: control
      reaches end of non-void function

2005-04-14 (CVS):
    * no need to announce MIDI_Cleanup if we'll never do it.
    * -? arg is back (Steve likes it ;)

2005-04-13 (CVS):
    * Removed useless -minmemory cmdline argument
    * Removed useless parms->memsize < minimum_memory check
      in Host_Init()
    * Added lower/upper boundaries (8mb/96mb) for -heapsize arg.
    * Added lower (48kb for hexen2, 256kb for hexenworld)/upper
      (1mb) boundaries for -zone argument (DYNAMIC_SIZE defs and
      zonesize requirements are different for hexen2 and hw.)
    * We won't die if no size is specified after -zone, but will
      ignore the arg.
    * Added null string terminations to hexen2 zone.c, so as to
      prevent garbage on sys_memory console command (found this
      in Pa3PyX)
    * tiny clean-up in COM_InitFilesystem (hexen2)
    * GAMENAME doesn't depend on QUAKE2 definition (hexen2)
    * made GL_Bind a macro (from Pa3PyX)

2005-04-10 (CVS):
    * Various MAX_OSPATH fixes
    * Added version string to hwmaster initialization display
    * Added user directory support to hwmaster. filters.ini will
      now be processed in ~/.hwmaster as ~/.hwmaster/filters.ini
    * Added FreeBSD to VERSION_PLATFORM
    * Bumped the version to 1.2.5 for a new future release,
      updated the specfile

2005-04-09 (CVS):
    * Removed scankey[] and MapKey(), unused for
      SDL/PLATFORM_UNIX
    * More unused/cosmetic clean-ups in vidsdl

2005-04-08 (CVS):
    * added Pa3PyX' fire delay bits for paladin's setstaff
      (gamedata-1.14)
    * removed useless is_PowerVR and isPermedia and unused
      vertex array extension checking from hexenworld
    * 3dfx stuff initial clean-up
    * whitespace cosmetics in gl_vidsdl.c
    * Merged a new R_PolyBlend code (from jshexen2).  Also
      added the GL_DoGamma function (to be called from
      R_PolyBlend) which brightens the display. Commented out
      for now. This little gem can be used to adjust gamma for
      Voodoo1/2/Rush.
    * Enable 8-bit gl extensions only if explicitly required
      by the user (-paltex cmdline arg.) Otherwise, fxMesa is
      rendering is borked, at least with Mesa-3.4.2 on RH-7.3
      in my experience.
    * Added -old3dfx cmdline check. For now, I use it to set
      the MESA_GLX_FX environment variable to "f" and to disable
      fxMesa fake multitexturing. Further future uses possible.

2005-04-06 (CVS):
    * hexenworld/opengl: fixed non-dlsymmed use of some gl
      functions. also fixed a truely silly copy+paste error

2005-04-05 (CVS):
    * dropped the -march=i386 -mcpu=i686 flag: causes problems
      at least on old pentiums with old distros.  going with
      plain -march=i586
    * we dlsym the gl functions and still use -lGL -lGLU ?!!
      bad.. bad....
    * cleaned-up endianness which is now decided at compile time
    * fadescreen ripple effect may stop help/quit screens from
      appearing on 3dfx with Mesa Glide. (from Steve)
    * 3dfx voodoo detection when using Mesa Glide (from Steve)
    * quakeized and added a comment to ToggleFullScreenSA
    * removed my previous restrictions about adding userpaths
      to the searchpath (was added in 1.2.3)
    * Save recorded demos, progs profiles, console debug logs
      and all server logs, etc to com_userdir, not com_gamedir.
      Otherwise these operations shall fail on a system-wide
      installation unless the user is super user.
    * dwarf class was never enabled in hexenworld/siege menu
      system, because com_gamedir is not only a naked dirname
      but a full pathname
    * removed a few quake1 leftovers from hexenworld
    * imported the hexenworld master server 1.2 sources (by
      Marc Allaire, aka. Kor Skarn) into the cvs
    * fixed gcc2 compilation of hwmaster
    * merged a stdin code for hwmaster that doesn't eat 100%
      of the cpu (adapted from quakeforge)
    * added compile instructions for the gamecode
    * updated the specfile for our new loki_patch package

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):
    * updated the build_all scripts
    * small sbar resizing fix in software mode (from Steven)
    * added back console video mode reporting. also removed the
      non-functional findbpp

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):
    * fixed and activated munmap of shm->buffer for snd_oss.c
    * commented-out shm->gamealive thing which serves nothing
    * 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 (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)

2005-02-23 (CVS, 1.2.4-rc3):
    * final rc for 1.2.4
    * killed hexenworld warning "cl_tent.c:2972: 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.

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-14 (CVS, 1.2.4-rc1):
    * added ability to disable ALSA support at compile time
    * fix mouse not being activated after connecting to a server in
      windowed mode for hexenworld. from Steve.
    * 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

2005-02-12 (CVS):
    * more general clean-up:
      - delete dead win32 code from linux files
      - 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.
      - we can never reach CheckTextureExtensions(), we'll give up
        in GL_Init_Functions() if we don't like the gl_library...
      - also comment out CheckArrayExtensions(), its call is if0'ed out
    * added 48000 to the alsa rate switch
    * added paranoid sound driver checks
    * added missing scrolltitle in the software version of VID_MenuDraw()

2005-02-10 (CVS):
    * removed unused functions SV_SaveEffects, SV_LoadEffects,
      SV_RemoveGIPFiles and SV_CopyFiles from hwsv.
    * fixed a typo in hwcl software draw code
    * fixed a format warning in hwsv

2005-02-09 (CVS):
    * killed a bunch of compiler warnings
    * killed all unused HW menu stuff

2005-02-08 (CVS):
    * 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_Update() in vid_sdl.c)
    * tiny whitespace cleanup in in_sdl.c
    * draw alpha console background in Hexen2 (Draw_AlphaPic() from HW)
    * if0-out fxPalTexImage2D (we don't use it)
    * display the "meshing XXX" spam for developers only

2005-02-06 (CVS):
    * first sketchy update to the README files regarding
      the recent sound changes
    * move cd_win.c and resource.h to ./win_stuff/
    * tiny makefiles cleanup
    * tiny log entries cleanup in snd_sdl.c, midi_sdl.c

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

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
    * 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 S karn'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/HexenWorld:
    - Fixed userdirs to work correctly against the -game arg.
    - Added "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):
    - Fixed (hopefully) 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 for this.
    - Removed already commented-out demoness-in-old-mission.
    - Put the widgets to be played with remotely are put in to
      structs properly for easier handling. The binary output is
      even smaller now.
    - For Gtk2.0 builds, replaced gtk_widget_set_usize() with
      gtk_widget_set_size_request()
    - Much code clean-up (apparently)
    - Removed gtk_widget_set_uposition(). We seem to do fine with
      gtk_fixed_put().
    - Hacked the version number into the window title.  [v0.4.6]
    - Combined a bunch of on_ThisEvent() type callback functions
      which had been doing the same  x = !x  thing
    - Fixed / cleaned-up config_file.c.
    - Version 0.4.7.

2005-01-13 (CVS, 1.2.3-rc7):

    * 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 here.
    * Fixed the debug message about undefined mouse buttons.
    * 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):

    * _windowed_mouse default is 1 in gl mode, too.
    * bind Alt+Enter combination to Steven's stuff for fullscreen-
      windowed toggling

2005-01-03 (CVS, 1.2.3-rc4):

    * 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.
    * Probably some other minor things that we forgot.

