Fixed potential buffer overflow from OpenGL extension string with _vsnprintf (win32/vid_dll.cpp, user/dk_defines.h).

Added additional video modes and removed 400x300 and 512x384 modes (win32/vid.dll.cpp, dk_/dk_menu_video.cpp).

Added wide aspect FOV scaling (client/cl_ents.cpp, cl_main.cpp, client.h, user/dk_misc.h).

Fixed menu scaling on wide aspect screens (qcommon/scrn_scale.cpp, qcommon/scrn_scale.h, dk_/dk_menu.cpp, dk_menu_controls.cpp, dk_menu_savegame.cpp, dk_menu_loadgame.cpp, dk_menu_options.cpp, dk_menu_newgame.cpp, dk_menu_mulitplayer.cpp).

Added custom width and height fields to video menu (dk_menu_video.cpp, dk_menu.cpp, dk_menup.h).

Added non-power-of-2 texture support for non-3DFX cards (ref_gl/gl_rmain.cpp, gl_image.cpp, gl_local.h).

Added anisotropic filtering support for non-3DFX cards (ref_gl/gl_rmain.cpp, gl_image.cpp, gl_local.h, dk_menu_video.cpp, dk_menuup.h).

Increased range of gamma slider (dk_/dk_menu_video.cpp, win32/vid_dll.cpp).

Added support for mouse buttons 4 and 5 (win32/in_win.cpp, client/keys.h, language headers under user/).

Added support for scrolling console with mouse wheel (client/keys.cpp).

Added hud scaling option cl_hudsize, values 0-6 (client/cl_scrn.cpp, console.cpp, cl_icons.cpp, dk_/dk_scoreboard.cpp, ref_gl/gl_inventory.cpp, gl_icons.cpp).  Also split function sb_DrawMulti into SB_DrawCTF and SB_DrawDM for CTF-specific and DM-specific scoreboards.

Refactored function GL_RenderLightmapped surface to eliminate redundant code (ref_gl/gl_rsurf.cpp).

Tweaked rendering of lightmapped surfaces in multitexture mode with texture chains, large boost to framerate (ref_gl/gl_rsurf.cpp, gl_local.h).

Added support for animated textures on transparent surfaces (ref_gl/gl_rsurf.c).

Added adjustment for bmodel origin and angles for dynamic light computation.  Rotating bmodels now light up!

Added cvar gl_dlightcutoff, adjusts falloff of dynamic lights, default = 64.  Lower = smoother, but a bit slower.

Added new icon (daikatana.rc, daikatana.ico).

Changed mid texture rendering to use same chain as solid lightmapped surfaces.  Disabled blending (ref_gl/gl_rsurf.cpp).

Changed warp surface rendering to use single-pass rendering in multitexture mode (ref_gl/gl_rsurf.cpp).

Fixed texures on doors disappearing when loading a save right in front of a door in multitexture mode (ref_gl/gl_rsurf.cpp).

Hid savegem count in save menu when unlimited saves is enabled (dk_/dk_menu_savegame.cpp).

Added status bar scale option to options menu (dk_/dk_menu_options.cpp).

Added scaling of crosshair (client/cl_view.cpp).

[06-28-2012 Release]

Added support for .ent files (qcommon/cmodel_dynamic.cpp).

Added support for 'musictrack' worldspawn key to set music track for maps not included in music.csv (world/world.cpp, client/cl_view.cpp, cl_parse.cpp).

Fixed inventory and weapon models on HUD from disappearing after a vid_restart. (client/cl_inventory.cpp, cl_main.cpp).

Fixed stat boost icons on HUD from getting re-arranged after a vid_restart. (client/cl_icons.cpp, cl_view.cpp).

Fixed ammo counts for weapons the player does not have from disappearing from the weapon HUD after a vid_restart (client/cl_inventory.cpp).

Increased trigger_changelevel required sidekick proxmimoty from 150 to 512 (world/triggers.cpp).

Added hack to prevent 'dojburn' models being moved by doors in e2m4d & e2m4e (world/misc.cpp).

Fixed player being able to pick up megashield when at full megashield armor (world/artifacts.cpp).

Added sv_armor_stack cvar to allow stacking of armor pickups (world/world.cpp, world/artifacts.cpp).

Added sv_armor_stack_multiplier cvar to set how much armor can be stacked (world/world.cpp, world/artifacts.cpp).

Added sv_statboost_time, sv_wraithorb_time, and sv_manaskull_time cvars to change duratiion of powerups (world/world.cpp, world/artifacts.cpp).

Added sv_savegem_bonus cvar to allow spawning of bonus gems when unlimited saves is on (world/world.cpp, world/artifacts.cpp).

Added sv_bonusgem_maxammo_increment cvar, sets ammo capacity bonus from bonus gems (world/world.cpp, weapons/weapon_funcs.cpp).

[09-03-2012 Release]

Fixed sidekick aiming check so that they avoid hitting the player (world/sidekick.cpp).

Fixed sidekick item code so that they will pick up the trident and trident tips (world/sidekick.cpp).

Sidekicks can now use the ballista (world/sidekick.cpp).

Fixed the size of the crosshair display in the options menu (dk_/dk_men_options.cpp).

Increased the number of pak files that can be loaded.  Filenames pak0-pak99 are now loaded (qcommon/files.cpp).

Added hardware gamma support on Windows 2000 and higher (set gl_ignorehwgamma to 1 to disable) (ref_gl/gl_rmain.cpp, win32/glw_imp.cpp).

Console notifications in the top left of the screen no longer prevent centerprints in single player (client/console.cpp, cl_scrn.cpp).

Now uses 512x512 menu background when supported by the GPU, eliminating most of the seams (dk_/dk_menu.cpp).

Fixed offsets on weapon muzzle flashes (shotcycler, ripgun) in first person mode (client/cl_tent.cpp).

Added new dedicated/ debug console (win32/sys_win.cpp, win32/console_win.cpp, qcommon/common.cpp).

Added icon in windowed mode (win32/glw_imp.cpp, win32/winquake.h, ref_gl/ref_gl.rc, ref_gl/resource.h, ref_gl/ref_gl.dsp).  Added 64x64 icon variant.

Added support for 'angles' entity key to set pitch/yaw/roll (physics/dk_sent.cpp).

[11-14-2012 Release]

Added support for textures larger than 256x256 on Voodoo4/5 cards (ref_gl/gl_image.cpp).

Changed subtitles to scale up with HUD size (client/cl_scrn.cpp).

Sidekicks that transition with the player to the next map more than 150 units way are now spawned 128 units behind the player (world/client.cpp).  Fixes sidekicks getting stuck behind clip brushes and outside the map.

Added cvar sv_sidekick_xp to allow kills by sidekicks to give xp points to player (world/world.h, world/world.cpp, world/client.cpp).

Added asynchronous rendering mode to split network and rendering framerates on the client.  Toggled by cvar cl_async (client/cl_main.cpp, cl_input.cpp, cl_pred.cpp, client.h, dk_/dk_menu_video.cpp, dk_menup.h).

[12-09-2012 Release]

Added support for JPEG and PNG screenshots (ref_gl/gl_rmain.cpp, gl_rmisc.cpp).  Uses cvar gl_screenshot_format to determine type.

Added screenshot_silent, screenshot_tga, screenshot_jpg, and screenshot_png commands (ref_gl/gl_rmain.cpp, gl_rmisc.cpp).

[03-19-2013 Release]

Removed the mini-driver selection from the video menu (dk_/dk_menu_video.cpp, dk_menup.h).

Added warning screen with link to download WickedGL on startup when the old mini-drivers are still in use (dk_/dk_menu_gldriverwarn.cpp, dk_menu_video.cpp, dk_menu.cpp, dk_menup.h).

Added re-drawing of alpha sprites over trans surfaces using stencil buffer.  Can be disabled with the cvar gl_sprite_overdraw (ref_gl/gl_rmain.cpp, gl_local.h, win32/glw_imp.cpp).

Added saveshots for quicksaves (named 'quick' or 'quik') (client/cl_main.cpp, server/sv_ccmds.cpp).

Added JPEG image loading (ref_gl/gl_image.cpp).

Added JPEG saveshots (ref_gl/gl_rmisc.cpp, server/sv_ccmds.cpp, dk_/dk_menu_loadgame.cpp, dk_/dk_menu_savegame.cpp).

Added cvar gl_newlightmapformat, setting to 0 forces old lightmap format, workaround for crappy OpenGL drivers (ref_gl/gl_rmain.c, gl_local.h).

Added compressed savegames: .sav and .sv2 files are zipped into .sav files (qcommon/qcommon.h, files.cpp, cmodel_dynamic.cpp, server/sv_ccmds.cpp, sv_init.cpp).

Expanded save slots to range from savea0-savez9 for 260 total (dk_/dk_menu_savegame.cpp).

Added cvar gl_displayrefresh to set refresh rate in fullscreen modes (ref_gl/gl_rmain.cpp. gl_local.h, win32/glw_imp.cpp).

Added refresh rate option to video menu (dk_/dk_menup.h, dk_menu_video.cpp, dk_menu.cpp).

Added screenshot format option to options menu (dk_/dk_menup.h, ddk_menu_options.cpp).

Fixed player getting stuck and sliding on steep faces (qcommon/pmove.c).

[05-15-2013 Release]

Removed envmap effect on hand portion of weapon models (ref_gl/gl_local.h, gl_rmain.cpp, gl_rmisc.cpp, gl_image.cpp, gl_mesh.cpp).

Added volumetric shadow effect when gl_shadows is set to 2 (ref_gl/gl_model.h, gl_model.cpp, gl_mesh.cpp, gl_shadow.cpp, gl_rmain.cpp, gl_local.h).  The cvar gl_shadowalpha controls the opacity of shadows, gl_shadowrange controls fade out distance, and gl_shadowvolumes can be enabled to show projected volumes.

Added cvar gl_shadow_self, that controls whether models are self-shadowed when volumetric shadows are enabled (ref_gl/gl_mesh.cpp, gl_shadow.cpp, gl_rmain.cpp, gl_local.h).

Added picker for shadows to video menu, replaces radio button (dk_/dk_menu_video.cpp, dk_menu.cpp, dk_menup.h).

Fixed crash in GL driver warn submenu (dk_/dk_menu_gldriverwarn.cpp).

Fixed debug warning for directly opening compressed files with FS_FOpenFile (qcommon/files.cpp, dk_/dk_menu.cpp, client/cl_srn.cpp).

Added 3200x1800, 3840x2160, and 3840x2400 video modes (win32/vid_dll.cpp, dk_/dk_menu_video.cpp).

Fixed TGA skins with same name as .wal overriding them (ref_gl/gl_image.cpp).

Added patent-free shadow stenciling method that works for vieworg inside shadow volume (ref_gl/gl_shadow.cpp).

[10-30-2013 Release]

Added scaling of quick console by status bar scale factor, toggles with cvar con_usehudscale (client/console.cpp).

[11-23-2013 Release]

Added auto-download support for models, sounds, textures, and envmaps (client/cl_download.cpp, cl_main.cpp, cl_parse.cpp,  qcommon/cmodel.h, cmodel_dynamic.cpp, server/server.h, sv_main.cpp, sv_user.cpp). Also added these cvars:
allow_download_maps
allow_download_textures
allow_download_sounds
allow_download_models
allow_download_players (not yet used)
allow_download_pics (not yet used)

Removed rotating bbox fix in physics code, was making rotating mixer thingy in E1M2 crush the player (physics/p_phys.cpp).

Added 'movetype' epair to deco_e1/2/3/4 to allow mappers to overide deco model movetype (world/misc.cpp).

Added deco_custom entity (world/misc.cpp).

[11-28-2013 Release]

Added sv_resetmap and sv_allow_errorcmd (maraakate).

Updated the bash scripts for client-ness.  Fixed some Const correctness with CVector in GCE DLL.

[12-24-2013 Release]

Changed shadow culling to use bbox for whole shadow volume and refactored shadow projection (ref_gl/gl_mesh.cpp, gl_shadow.cpp).

Added texture environment combiners in multitexture mode.  Toggles with cvar gl_ext_texcombine, requires vid_restart (ref_gl/gl_rmain.cpp, gl_rsurf.cpp, gl_state.cpp, gl_local.h).

Added multitexture rendering of alpha surfaces, toggles with cvar gl_alphasurf_multitexture (ref_gl/gl_rmain.cpp, gl_rsurf.cpp, gl_local.h).

[01-04-2014 Release]

Added KEEP_SIDEKICKS spawnflag to trigger_changelevel, transitions sidekicks to next map even when they're not required (world/triggers.cpp).

Added detailed weapon inventory printout to SIDEKICK_Stats, via new SIDEKICK_PrintWeaponInfo() func (world/sidekick.cpp).

Fixed alignment issues with Superfly's statusbar flap (client/cl_scrn.cpp).

[01-06-2014 Release]

Added MULTIUSE spawnflag to trigger_sidekick_teleport, allows re-use of trigger (world/triggers.cpp).

[01-21-2014 Release]

Made dedicated server (and later everything else) compile on Linux with clang

Ported Client to Linux using SDL (other operating systems should be very easy now)

Fixed a lot of compiler warnings from clang, potentially fixing tons of bugs

Wrote a new sound backend ('audio.dll') using OpenAL, first only for Linux, other operating systems should be easy to support as well.
This gives us real surround sound (and is the only way to get sound on !Windows)

Support saving to the $HOME dir on !Windows, so the installation directory doesn't have to be writable

Files are now loaded using absolute paths (assuming data/ is next to the daikatana executable),
so the working directory doesn't have to be the install directory.

Made savegames 'stable', so they still work after recompiling the game (as long as the relevant structs aren't changed)

(On Linux/OSX/other Unix-like) write functions that were used in function pointers and couldn't be saved because
they weren't known in the savegame sytem to <save-dir>/dk-missing-fns.txt
=> using this, lots of missing functions were made known to the savegame system, so savegames should work even better now!

Fish and Seagulls are now saved too (so they're not suddenly missing after loading a savegame)

Fix the notorious Wyndrax bugs
* Crashes when saving/loading savegames/after continuing from a savegame
* Wyndrax attacks even when continuing from a savegame (and doesn't just wander around aimlessly and - even worse - immortably)

[01-22-2014 Release]

Selected server in join internet game list is now highlighted in white text and moused-over servers are also in white text (dk_/dk_menu_multiplayer.cpp, dk_menup.h).

Added screenshot and screenshot_silent to keyboard binds menu (dk_/dk_menup.h, dk_menu_keyboard.cpp, user/l_language.h, l_english.h,
l_french.h, l_german.h, l_italian.h, l_spanish.h).

[01-23-2014 Release]

Refactored show_fps and show_time out of SCR_DrawStats() (client/cl_scrn.cpp).

Added give_sidekick_weapons cheat.  Yeah, yeah you can use sv_sidekickweapons
as a server-side var.  But what if you forget and don't want to restart maps?

Fixed wrap artifacts on skill windows and Mikiko's flap.  Requires updated pak4.pak (client/cl_scrn.cpp).

XP_ALTTAB_FIX.REG is now part of the startup routine.  Daikatana will check
if the game is running on Windows NT v5.1 or higher (Win XP and Win 2k3) and
apply the appropriate AppCompatFlags to fix the alt+tab issues.

Fixed adding pak files twice during File System initialization. (caedes)

Dedicated server .exe will minimize to system tray (win32/console_win.cpp).

Added cvar win_dedconsole_mintotray, controls whether dedicated console will minimize to systray.  Feature longer limited to dedicated server .exe (win32/console_win.cpp).

Added coop_distribute_xp. (world/client.cpp and others).

Added shared coop XP option to multiplayer menu's start coop game section (dk_/dk_menu_multiplayer.cpp, dk_menup.cpp).

Added cl_sleep cvar, reduces CPU usage when r_maxfps is set below highest achieveable framerate (client/cl_main.cpp, win32/sys_win.cpp).

Fixed timedemo to work with deathmath demo playback (client/cl_main.cpp).

Added sv_sidekick_friendly_fire cvar.  Defaults to 0 and is ignored if skill
level is hard (2) (physics/com_sub.cpp).

Added sound rate option (s_khz) to sound menu in Windows builds only (dk_/dk_menu_sound.cpp, dk_menup.h).

CL_Snd_Restart_f() now restarts the level music (client/cl_view.cpp, cl_main.cpp, client.h).

Fixed crash on clicking Quit on dedicated server console while a map is loaded (win32/console_win.cpp).

Fixed a few little sillies with the sv_sidekick_friendly_fire (physics/com_sub.cpp).

Weapon_give_all cheat (dlls\weapons\Main.cpp).

Fixed gashands running out of gas immediately upon map changes in coop (world/client_init.cpp).

S_exit_sound cvar.  Can't leave without my buddy superfly! (dlls/world/triggers.cpp, dlls/world/World.cpp, base/server/sv_main.cpp).

SV_SIDEKICK_REGEN_HP cvar.  Defaults to 1. This works by leeching onto the 
TASKTYPE_SIDEKICK_STOPGOINGFURTHER and TASKTYPE_IDLE and seeing if WaitTime in 
that task has exceeded a few seconds. If we stand still for a while (not
running around shooting or following) it will eventually get their health back.
(dlls/world/sidekick.cpp, dlls/world/World.cpp, base/server/sv_main.cpp).

Fixed segfault with deleting config files from menu in linux (base/dk_/dk_menu_advanced.cpp, base/dk_/dk_menu_controls.cpp).

Changed sidekick health values written to info.hdr to percent form (base/physics/p_save.cpp).

Implemented wait key checking for trigger_console, fixes async player movement in e4m4 shooting range (world/triggers.cpp).

Added missing mass to black prisoner (world/blackpris.cpp).

Hacked around the e4m1b prisoners being able to climb over each other (world/blackpris.cpp, world/whitepris.cpp).

Added delete function (button and delete key) to load and save menus (base/dk_/dk_menup.h, dk_menu_loadgame.cpp, dk_menu_savegame.cpp, dk_menu_controls.cpp).

Value of health packs picked up by sidekicks is scaled up for increased sidekick base_health (world/artifacts.cpp).

Health gained from hosportal, fruit tree, and drug box scaled up for increased sidekick health (world/healthtree.cpp, hosportal.cpp).

+shift/-shift for setting BUTTON_SHIFT to a mouse or joystick (or keyboard if
you really want to) button.  By request, this is intended for using the shift
button to attract both sidekicks attention (client/cl_input.cpp,
base/dk_/dk_menu_keyboard.cpp, base/dk_/dk_menup.h, and the language headers).

Fixed off-center crosshair when viewsize is reduced (client/cl_view.cpp).

Fixed blue stat boost icons (ref_gl/gl_icons.cpp).

Changed ref_gl rendering code to use vertex arrays (ref_gl/gl_local.h, gl_arrays.cpp, gl_state.cpp, gl_rmain.cpp, gl_entity.cpp, gl_rsurf.cpp, gl_fogsurf.cpp, gl_surfsprite.cpp, gl_sky.cpp, gl_light.cpp, gl_particle.cpp, gl_alias_dkm.cpp, gl_beams.cpp, gl_draw.cpp).

Added cvar r_skydistance for skybox render distance, default 8192.  Replaced hardcoded distance of 4096 (ref_gl/gl_local.h, gl_rmain.cpp).

Added support for TGA glow textures, named <texturename>_glow.tga.  Enables and disables with cvar gl_glows (ref_gl/gl_local.h, gl_model.h, gl_rmain.cpp, gl_image.cpp, gl_model.cpp, gl_rsurf.cpp).

Added gl_showtris to the cheatvars list (client/cl_main.cpp).

V-sync no longer slows down loading (ref_gl/gl_rmisc.cpp, gl_model.cpp, gl_model.h).

Removed cvar cl_use_loading_bar due to vsync loading fix.

Added cvar scr_loading_sounds, enable/disable loading sounds (client/cl_scrn.cpp).

Added optional RGB scaling of world textures in multitexture mode, use cvar gl_rgbscale 1/2 to toggle, requires vid_restart (ref_gl/gl_local.h, gl_rmain.cpp, gl_image.cpp, gl_state.cpp).

Added check for starting in solid or void for sidekick start point projection used when dist from player > 150.  Fixes Superfly getting stuck in the floor when transitioning to e1m4b (dlls/world/client.cpp).

Updated gamespy master to master.maraakate.org which resolves to QTracker's
master server IP.  Ron Mercer of QTracker has made a gamespy compatible master
server and this resolves issues with Gamespy shutting down after 05-30-14.

Added QTracker logo to multiplayer menu (dk_/dk_menu_multiplayer.cpp).

Changed sidekick range check for level exit to use cvar sv_sidekick_exit_range, default 768 (world/world.cpp, world.h, triggers.cpp).

Implemented new CInterfaceListBox class (dk_/dk_menu_controls.cpp, dk_menu_controls.h).

Replaced map picker in start server menu with listbox (dk_/dk_menu_multiplayer.cpp, dk_menup.h).

Replaced episode picker in coop menu with map listbox, loads from CoopMaps.csv (dk_/dk_menu_multiplayer.cpp, dk_menup.h).

Added centering of HUD and console in Eyefinity/surround modes with aspect ratio >= 3.6.  Cvar scr_surroundlayout toggles this,
and cvars scr_surroundleft (default 1/3) and scr_surroundright (default 2/3) control the bounds of the center screen
(qcommon/scrn_scale.cpp, scrn_scale.h, client/cl_scrn.cpp, console.cpp, ref_gl/gl_icons.cpp, gl_inventory.cpp).

Changed Ripgun ammo to be named 'Rip-Ups', based on description in epairs entity list.  Gave slugger's cordite grenade ammo its own name slot, instead of stealing the ripgun's ammo name slot (dlls/weapons/ripgun.cpp, slugger.cpp, user/l__language.h, l_english.h, l_german.h, l_french.h, l_spanish.h, l_italian.h).

Fixed closing window when in windowed mode not exiting game (win32/vid_dll.cpp).

Fixed WFL_NODROP flag for silverclaw being set in wrong field (dlls/weapons/silverclaw.cpp).

Fixed alt-tabbing out when volume is already set to 0 causing volume settings to return to their previous values (win32/vid_dll.cpp).

Added 3440x1440 video mode and 144Hz refresh option (sdl/sdl_vid.cpp, win32/vid_dll.cpp, dk_/dk_menu_video.cpp).

Moved video mode list to shared header (qcommon/vid_modes.h, sdl/sdl_vid.cpp, win32/vid_dll.cpp).

Moved status bar drawing code to separate file (client/cl_scrn.cpp, screen.h, cl_statusbar.cpp).

Improved responsiveness of FPS counter (client/cl_statusbar.cpp).

Renamed gl_mode cvar to r_mode (ref_gl/gl_rmain.cpp, gl_local.h, win32/glw_imp.cpp, sdl/sdl_ref_gl.cpp, dk_/dk_menu.cpp. dk_menu_video.cpp).

Renamed vid_customwidth and vid_customheight cvars to r_customwidth and r_customheight (win32/vid_dll.cpp, sdl.sdl_vid.cpp, dk_/dk_menu.cpp, dk_/dk_menu_video.cpp).

Added 1024x512 back_unified.tga menu background (dk_/dk_menu.cpp).

Added support for new back03 and back13 menu background tiles (dk_/dk_menup.cpp, dk_menu.cpp).

Added 'entcount' command to display current entity count (physics/p_concmds.cpp).

[01-11-2015 Release]

Added 5120x2880 video mode (qcommon/vid_modes.h, dk_/dk_menu_video.cpp).

Increased MAX_GLTEXTURES to 2048 (ref_gl/gl_local.h).

Added new r_notexture image, made old r_notexture into r_dottexture (ref_gl/gl_rmisc.cpp, gl_particle.cpp).

Fixed GL_CLAMP texture wrap parameter getting stuck on world textures (ref_gl/gl_draw.cpp, gl_surfsprite.cpp).

[01-24-2015 Release]

Added sv_nosidekicks cvar by request.

hack for checking if the sounds/ path exists for an mp3 file for 
PlaySidekickMP3.  This will fix a fair amount of the missing sounds from 
recompiled maps based on v1.0 map sources. Though a few are still the wrong 
files (i.e. mikiko files pointed to from superfly folders)
(dlls/world/sidekick.cpp).

Removed the various downloading file attempts for missing sprite and dkm 
leftovers.

Reset GIB_COUNT to 0 on map transitions. (dlls/world/client.cpp)

Press a key to stop a func_monitor cinematic.  Still kind of buggy, sometimes
you have to mash the key multiple times or hold it down.
(dlls/world/func_monitor.cpp)

Fixed breakme cheat so it actually works! (dlls/world/items.cpp)

Revised pressing the use key to stop func_monitor cinematics.  No longer relies
on the delay. (dlls/world/func_monitor.cpp)

Set scr_noclearmsg greater than 1 to completely disable any kind of center 
prints.  This is similar to Quake 1's style of status messages.
(base/client/cl_scrn.cpp).

Fixed undersized viewport at 1366x768 resolution (client/cl_scrn.cpp).

[02-20-2015 Release]
Fixed corrupt screenshots at 1366x768 resolution (ref_gl/gl_rmisc.cpp).

Added 48KHz sound option to menu (dk_/dk_menu_sound.cpp).

Added hide_from_console_output byte to cs_print_centers.

Added statboost_<stat> commands by request.

Fixed a bug with SZ_DeleteSpace and hide_from_console_output code.

Added Mouse4 and Mouse5 binding options to the Mouse menu, required some rearranging (dk_/dk_menup.h, dk_menu_mouse.cpp).

Added dkcheat, better than dk_level (dlls/world/world.cpp).

Made massacre cheat always gib if in single player (dlls/world/world.cpp).

Removed the if above ground (jumping) and above water traceline check for
sidekicks following the player.  This allows you to bunny hop like a nut
and still have the sidekicks follow you.  Nothing appears broken in the
maps I've tested it in thus far (dlls/world/ai_func.cpp).

Added respend cheat.  Allows you to respend your exp (dlls/world/world.cpp).

Added give_inventory cheat.  Check the available options with give_inventory
list  (dlls/world/inventory.cpp).

Friendly fire is now one generic cvar, 'allow_friendly_fire'.  This was
already existing in the code, but some things used allow_friendly_fire while
others used dm_friendly_fire! (multiple files)

Poisoning has no effect if you're in god mode via cheating.  Still checks to
see if you're invincible from the manaskull though.  Because maybe the
manaskull might expire soon and you could still deal some damage 
(base/physics/com_sub.cpp).

[07-15-2015 Release]

Now switches off gamma ramp when alt-tabbing out of the game (Win32 only,
SDL still needs an implementation for gamma ramping) (client/ref.h, ref_common/dk_ref_common.h, dk_ref_init.cpp, ref_gl/gl_rmain.cpp, sdl/sdl_input.cpp, sdl_ref_gl.cpp, win32/glw_imp.cpp, vid_dll.cpp).

[08-30-2015 Release]

Added option to draw XP bar as a wider continuous bar with an outline to make it more visibble.
Also shifts over level number/label by 10 pixels.  Controlled by cvar scr_xpbar_nosegments
(client/screen.h, cl_scrn.cpp, cl_statusbar.cpp).

[07-22-2016 Release]

Updated client voting so it can return to the map rotation instead of constantly restarting back to e1dm2a (or whatever) after playing a voted map.

Added Visual Studio 2005 compiling support.  Requires DX9 SDK in your path.

Added sv_use_dk10_wisp - Use Daikatana 1.0's way of requiring to chase wisp ammo around the map to capture them for your inventory.  By request. (physics/p_main.cpp, server/sv_main.cpp, dll/weapons/wyndrax.cpp).

Updated BitBucket URLs in the code for grabbing new versions since we moved (client/cl_parse.cpp, server/sv_main.cpp, extract_from_gog.sh).

Added ring_of_undead_think to RegisterFunc (dlls/world/artifacts.cpp).

Valgrind found one particular nasty, the main source of the huge leaks was MEM_TAG_HOOK and MEM_TAG_COM_EPAIR which had the ability to free'd but was commented out for some reason in com_LevelExit... may have been remnants from the shitty original memory manager that nelno tried to reinvent before shawn green switcehd back to Q2's memory manager (physics/com_main.cpp, qcommon/cmd.cpp, user/csv.cpp).

Free even more stuff on SV_UnloadDLLs for the memory manager.  This practically minimizes any memory leaks stemming from doing a 'map <mapname>' command. Otherwise, it causes a 4-5MB memory leak each time 'map <mapname>' is used.  This could be a problem on servers with people voting between game modes. (client/cl_main.cpp, physics/com_sub.cpp, server/sv_game.cpp).

Fixed multi-use trigger pressure-pad from e2m4b gets silly having Mikiko walk over because she has no userinfo with cl_cinematics. If we have cl_cinematics enabled (like most people would and is default behaviour) this is a serious problem with having to backtrack and see if the door even opened.  So, check everything and grab the single player's userinfo. (dlls/world/coop.cpp, dlls/world/coop.h, dlls/world/func_monitor.cpp).

Fixed issue #138  -- Mouse movement in menu affects mouse movement in game when fullscreen (sdl/sdl_input.cpp, win32/in_win.cpp).

Hack for invulnerability time and wraithorb time out of control for sidekicks :( (phyiscs/dk_sent.cpp, world/sidekick.cpp).

Sanity checks in AI_HasGoalInQueue so if you timescale ultra-fast it's not going to make the game throw the fuck up sometimes. (dlls/world/func2.cpp).

Fix skill description, make it's default value '1' not '100' because that's even more confusing. (server/sv_main.cpp, dlls/weapons/main.cpp, dlls/world/world.cpp).

Re-implemented HUD stat boost and weapon/inventory icon drawing to be handled in the client instead of hacked-in to ref_gl.

GL_ClearLightmaps() to clear BATCH_LM_Updates when we run re.Purge_Resources.  This allows MEM_TAG_BSP clearing to not barf.

Many bug fixes to audio handler/interface library for Miles.  Mostly relevant to multicore machines. (audio/DkAudioEngine_Miles/MilesSound.h, audio/DkAudioEngine_Miles/S_Calls.cpp, audio/DkAudioEngine_Miles/Sample.cpp, audio/DkAudioEngine_Miles/Sample.h, audio/DkAudioEngine_Miles/Support.cpp, user/MSS.h).

Removed most of the old H3D crud as it never worked right in DK anyways and was never supported.  Plus who still uses EAX and A3D anyways? (audio/DkAudioEngine_Miles/MilesSound.h, audio/DkAudioEngine_Miles/S_Calls.cpp, audio/DkAudioEngine_Miles/Sample.cpp, audio/DkAudioEngine_Miles/Sample.h, audio/DkAudioEngine_Miles/Support.cpp, user/MSS.h).

Removed some of the wav only cvars, we only need one now since Miles can take care of the rest. (audio/DkAudioEngine_Miles/S_Calls.cpp, audio/DkAudioEngine_Miles/Support.cpp).

Now checks for unused Miles ASI, FLT, and M3D files in default installs and moves them to a backup folder.

Added OpenAL support under Windows.  Support both OpenAL and Miles so Windows 98 users (me) aren't left in the dust.

Added s_preferred_music_format and s_preferred_music_extension CVARs so we can use the raw WAV files from the development drive for the music.

Added FLAC and OGG support to libalure for use with the s_preferred_music... CVARs under Windows.

Auto-updater for Win32.

Multi-language support in DLL format.

[11-29-2016 Release]

Send name->string CVAR in gamespy TCP list requests to see who is out there.  Opt-out with cl_master_server_ip_optout.

Added basegame CVAR for adding an optional directory to the top of the file system serach path.  I.e. basegame dataGerman. (base/qcommon/files.cpp)

Fixed death animations repeating themselves if you open/close a door in front of a dieing enemy.  (dlls/world/ai_func.cpp)

Undo some of the memory leak MEM_TAG_FREE fixes as coop relies on its broken behaviour.

Auto-update will now verify pak1,pak2, and pak3 PAK files to make sure they are v1.2 on first startup.  This also works on Linux.

Auto-update will now verify pak6.pak (map updates).

Added vote restartmap.

Fixed borked fonts in Linux on vid mode changes.

Added auto-update support to Linux for binaries.

Added sanity checks for hook->cur_sequence for enemies that don't have it before the strstr/strcmp stuff.

Get out of the way for sidekicks and trigger_hurts.  Helps for falling in lava and the electro-water in e4m4c.

Check if r_newrefdef.lightstyles is NULL in R_SurfIsDynamic.  This was the cause of the alt+enter during multiplayer crashes.  Assuming it was just set to NULL but not fully initialized or setup yet.  Didn't follow the code that far, but works OK.
Added the alt+enter hack to SDL because the crash is in non-windows land too.
Added a better description of the problem and why the hack exists.

If the unsegmented exp bar ratio is greater than 1.0f (i.e. coop going from e4 map, then voting to changelevel to e1 map) it will be past the HUD and look odd.  So cap it.

sv_savegem_bonus in coop.  Also allow copying the gems to the backpack.

Init all cvars in s_init so they stay archived if we use s_init_sound 0.  This also fixes a crash in openal side that removed the init var in s_startmp3.

Set the proper checks for the water drowning sound in multiplayer.

In miles you never heard those swim sounds  Well, traced it back... they set 0.10f for teh volume, but in the audio engine code they claim that anything from the view entity is full volume.  So, also set volume = 1.0f in the spatialize code.  Afaik, this only affects the swim sounds.

Fix drowning sounds for non-hiro characters.

Save bonus gem count in the coop stats file.  Use strtok_r instead of the old stupid way I did it years ago.

Added some missing save funcs reported by Dekonega

Added better start messages to map utils, added icons for command line utils.
Added desctiptive start messages to qbsp3, qvis3, and qrad3.
Added output for -threads parameter to qvis3 and qrad3.
Added icons for bspc, dkcsv, dkdata, dkpak, qbsp3, qvis3, and qrad3.

Added utils icons to project files.
Added resource scripts for bspc, dkcsv, dkdata, dkpak, qbsp3, qvis3, and qrad3 icons to project files.
Removed warning fix in cmdlib.c->ExpandPath() that was causing an error that broke qbsp3.

Wrap around for chat messages.

Default scr_noclearmsg to 1.  This will show centerprints and the lines behind them will still be somewhat faded.  Now you can still see teh chat messages at the same time.
Keep getting asked about 'fixing' this problem from noobs and everyone likes this behaviour so make it the default.

Require cheats 1 for gl_bbox.

Remove unused showscreen_f cmd.

Fix chat gem notification thing 'dipping' every few frames.  Also made x and y 'fixed' so it's not tied to the players mlook.

Better way to mute/unmute sounds when focus is lost under Win32.

Added vid_mutesound_no_focus CVAR.  Added vid_noshutdown description.
Do Cvar_ForceSet vid_fullscreen 1 for 3dfx cards.

Add bonus gems to single player menu.

Added -singlecpu command param for win32.

base/physics/p_main.cpp (ChooseNextMap): fix detecting having a previous map saved [-Waddress]

dlls/world/client.cpp (recalc_CoopStats): fix format string (record->frags is int) [-Wformat]

dlls/weapons/daikatana.h (daikatanaHitInfo_t): change nextAnim member to unsigned [-Wnarrowing]
(EMPTY_HIT): change nextAnim member from -1 to 0xFFFFFFFF after the nextAnim type change

dlls/weapons/daikatana.cpp (FRU_????): change 0.25 to 0.25f [-Wnarrowing]
(daikatana_get_attack): change flags param to unsigned after the nextAnim type change.

Hide sound rate picker in OpenAL in Win32.

Made CL_WriteConfiguration (char *name) return a qboolean so we don't print that the configuration was wrote to if it failed (i.e. read only nonsense).
Moved CL_WriteConfiguration and CL_SaveLastConfiguration to client.h and removed extra prototypes in the menu files.

Added coop_no_intermission CVAR to disable the intermission scoreboard during changelevel transitions.  Just like in Single Player.

Reduced the code duplication of CL_Record and CL_AutoRecord and friends.

Fix MikikoCom for talking not resetting on map transitions.  Was breaking chatter when a node was hit near the end of the map.  Code originally had memset SuperflyCom twice.

Fix for discus ambient animation getting 'stuck'.  More of a band-aid than a proper fix.  See the FIXME in dk_model.cpp for more info.
Remove unused cv_autoaim cvar declaration in weapons DLL.

Better way of dealing with cl_powerup_sounds.

scr_chatmsg_priority to sort chat messages to the top of DrawNotify buffer, by request.

Fix the game always writing to current.cfg on exit and on DKM_Leave and other such places.  This was fucking up cl_paks_verified for people who had their curcfg.cfg with an alternate config from the Config menu.

Added 'damage' epair to func_water and check spawnflags for DOOR_FORCEMOVE so we can update e1m6a with a fix for it.

Added DEVELOPER_MSG_OPENAL_VERBOSE so Developer 1 doesn't flood the console with tons of S_AddLoopSound notifications and such.

Rename daikatana.cfg to daikatana13.cfg because Microsoft AppCompat for Windows XP and later check for the presence of daikatana.cfg in data/ to make sure it's the same thing.
We don't need that crap any more.  This fixes ALT+TAB and really slow start up times on Windows Vista and later.

Fix a bug in copyConfigsToConfigDir() where if daikatana.cfg/daikatana13.cfg is missing then it will copy over itself in the base dir if executed from windows.  So check if the ConfigDir and BaseDir are the same and don't copy if so.

[03-22-2018 Release]

Fixed sound and new game menu radio buttons staying highlighted when moving through choices.

Fixed enemies being able to climb each other to get to you.  (dlls/world/ai_utils.cpp)

Fix a bug where doing something like daikatana.exe +set deathmatch 1 +map e1dm2a can bork auto-updater to keep going and bomb out of the server once connected. (base/client/cl_http.cpp)

Fix a bug with MAX_SURF_SPRITES not continously removing more allowing it to go over 512.  (base/ref_gl/gl_surfsprite.cpp)

Added gl_maxsurfacesprites CVAR for performance tweaking on old machines.  (base/ref_gl/gl_rmain.cpp)

Move the check for talking nodes for sidekicks to AI_UpdateCurrentNode.
Otherwise, if you spam 'come here' they won't fire it.  This also has the advantage of hearing some other nodes that you 
almost never hear like the aqueduct comment in e2m3a at the beginning of the map.  (dlls/world/ai_func.cpp and dlls/world/ai_utils.cpp)

Fix bug on fast machines for autosaves with maps that have no starting cinematic.
The client can enter the server before the world is settled with loading baselines and configstrings very quickly.
When this happens the autosave in clientthink fires off since you're already put in the server.
The doors aren't done setting up their linked edicts, so linked areaportals, doors being linked to trams, being linked to
triggers, etc. fails from the autosave.  (base/server/sv_main.cpp)

Fix old 1.2 bug with E4M4A doors on tram not being placed properly when restoring an autosave.
This also fixes a bug on fast machines with those doors never appearing.  (dlls/world/triggers.cpp)

Fix #210 'Boosting acro will not make you immune to falling damage'.  Previously, if you had the boost powerup and fell it wouldn't hurt you, EXCEPT if you were maxed out because of some logic issue.  Otherwise it just scales down damage.  (dlls/world/client.cpp)

Fix #214 'Dying from the falling damage in water sometimes cause swimming animation to play'.  (dlls/world/client.cpp)

Fix cambot lights sometimes not turning on if you skip the cinematics very quickly.  (dlls/world/ai_weapons.cpp)

Fix Column Monster from Episode 2 been 'awoke' during a save restore (including autosaves).  (dlls/world/column.cpp)

Fix RTC uninitialized undefined behaviour from SidekickLoadThink for Episode 3 'Mikikofly'.  (dlls/world/sidekick.cpp)

Fix a rare instance where you can attack Stavros in the middle of his spawn and he will bypass the Idle goal, go right into attack.  This normally wouldn't be an issue, but his animation never gets set to AI_IsReadyToAttack1 will always resolve to true... which means he can fire incredibly fast with perfect accuracy.  (dlls/world/stavros.cpp)

Fix complex particles to come back on save restores.  (dlls/world/sfx_entities.cpp)

Fix bullets from Rockgats, Mishima Guards, and other enemies which use AI_AimLeading to be able to hit the player on skills that are NOT easy.  (dlls/world/ai_aim.cpp)

Fix muzzle flashes not originating from proper Forward/Right/Up angles.  (dlls/weapon/weapon_funcs.cpp)

Fix boost powerups and inventory icons to rotate at consistent speeds independent of frame rate.  (base/client/cl_ents.cpp, base/client/cl_icons, and base/client/cl_inventory.cpp)

AI_EndCrouching needed case for AI_IsStateAttacking.  If not szAniamtion would pass garbage to AI_ForceSequence for mishima guards attacking.  Eventually this would bomb the game.  (dlls/world/ai_func.cpp)

Tweak C4 bbox size by request.  Came to this value by experimentation and user feedback.  (dlls/weapons/C4.cpp)

Fix boost powerups getting separated from e3 barrel explosions.  (dlls/world/misc.cpp)

Fix sidekicks being stuck in vents if you saved while they were in a vent (pointed out by Knightmare).  (dlls/world/sidekick.cpp)

Fix ambient sounds not being recorded to demos.  (base/client/cl_main.cpp)

Fix doors currently moving up or down continuing past the destination into the void when restoring a save (like the big doors in e4m5a in the art gallery).  (dlls/world/doors.cpp)

Fix #143 'Shiny weapons bugs'.  Specifically, fix the distortion on the shiny weapon effect when looking down.  (base/ref_gl/gl_alias.dkm.cpp)

Novabeam does have an ambient animation but it never played.  Looks like they forgot to remove the trap to avoid playing it while waiting on assets.  (dlls/weapons/novabeam.cpp)

Fix idle animations and idle sounds not playing after you enter the main menu or minimize/alt+tab out of the game.  (dlls/weapons/weapon_funcs.cpp)

Eye of Zeus does have an ambient animation but it never played.  Looks like a leftover trap for when the bolts were part of the model and not a client effect.  (dlls/weapons/zeus.cpp)

Fix weapprev and weapnext commands so they can't be used during intermissions.  (dlls/weapons/weapon_funcs.cpp)

Fix gashands shake effect to appear even when weapon bobbing is disabled.  (base/client/cl_ents.cpp and base/client/cl_trackent.cpp)

Fix multi_triggers being unusable on a save restore if they were SOLID_NOT (i.e. the first big 'eye' door in e1m2b).  (dlls/world/triggers.cpp)

Fix rockgat continuing to shoot line of sight if you go into notarget mode.  (dlls/world/rockgat.cpp)

Fix shotshells not originating from fru player viewangles and workaround glock shells model being oriented wrong.  (dlls/weapons/weapon_funcs.cpp, dlls/weapons/weapon_funcs.h, dlls/weapons/shotcycler.cpp, and dlls/weapons/glock.cpp)

Fix smoke cloud from gashands originating from centerview.  (dlls/weapons/gashands.cpp)

Fix possible NaN in VectorToAngles and VectorToYaw.  Inherited from Q2 v3.17 (see http://quake.wikia.com/wiki/Quake_II_Version_History#Version_3.17).
This has the added benefit of skeeters having better navigation in tight areas.  (user/dk_point.h and user/dk_point.cpp)

Fix fog values not being cleared on changelevel transitions.  (dlls/world/world.cpp)

Fix fog values not being saved in demos.  (base/client/cl_download.cpp, base/client/cl_parse.cpp, base/client/cl_view.cpp, base/client/client.h, dlls/world/world.cpp, and user/dk_shared.h)

Fix #107 'Creatures gib animations broke on certain maps (old Broken roboskeet animation)'.  Add gibCloudHeight and gibCloudAlpha to AIData.csv so we can set heights besides 1.0f now that gib.cpp.  Use these values (with much work done by MilkeyWilkey on this).  (dlls/world/AI_File.cpp)

Rename nextsunsmoke to nextparticleupdate in te_tracker_t.  Use this to cap the weapon projectile complex particles to 40fps.  Add old_origin to centity_t.  Use this to track distance travelled for weapon projectiles and cap the complex particles based on distance travelled.  Extra special thanks to LadyHavoc for hints on this.  (base/client/cl_artifact_fx.cpp, base/cl_projectile_fx.cpp, and base/client/cl_trackent.cpp)

Cap bolter trail, discus cloud, and stavros ammo particle framerate.  (base/client/cl_fx.cpp)

Attempt to load fog values from CM_KeyValue(map_epairs) when loading old demos with missing fog data.  (base/client/cl_view.cpp)

Cap rain, snow, and drip particle framerate.  (base/client/cl_pv.cpp)

Fix delay between animation and hit registering for disruptor glove.  (dlls/weapons/disruptor.cpp)

Fix sidewinder rockets so they lerp.  (base/client/cl_projectile_fx.cpp)

Set RF_NOSHADOW flag for sidewinder rockets.  (dlls/weapons/sidewinder.cpp)

Check PVS for rain/snow/drip particles to see if we can early out.  Gives a 2-3fps boost on average on my old p3 machines.  Seems to be OK.  (base/client/cl_pv.cpp)

Fix a crash from e3q2dm1, wisp ammo, and instagib.  If an ammo function has other things to do after winfoAmmoSetSpawn you need to check the pointer afterwards or else it can reassign stuff.  In this case it was reassigning its think to trigger_hurt and the autosave on endmatch was triggering (and also spamming the think function!).  (dlls/weapons/wyndrax.cpp)

Fix bolter sometimes being able to fire too fast with attack level 3 and 4.  (dlls/world/client.cpp)

Set RF_NOSHADOW flag for Nharre's Nightmare Pentagram.  (dlls/weapons/nightmare.cpp)

Remove viewthing from Release builds.  Only relevant to model_test maps from dev drive.  (dlls/world/viewthing.cpp)

Fix shiny weapons to have a similar visual effect to the voodoo 2 mini driver.  (base/ref_gl/gl_alias_dkm.cpp)

Fix melee weapons being able to hit the skybox.  (dlls/weapons/daikatana.cpp, dlls/weapons/discus.cpp, dlls/weapons/disruptor.cpp, dlls/weapons/gashands.cpp and dlls/weapons/silverclaw.cpp)

Fix HWGamma_Toggle(false) from bombing 3DFX OpenGL ICD in Win98 during a vid_restart.  (base/win32/glw_imp.cpp)

Fix being able to select weapons during intermission.  (dlls/weapons/weapon_funcs.cpp)

Fix muzzle flashes not rendering sometimes at high framerates.  (base/client/cl_trackent.cpp)

Fix muzzle flashes clipping into the wall, gun and other odd effects by using RF_DEPTHHACK|RF_MUZZLEFLASH.  (base/client/cl_trackent.cpp and base/ref_gl/gl_entity.cpp)

Fix glock and slugger from doing scorch marks on the skybox.  (dlls/weapons/glock.cpp and dlls/weapons/slugger.cpp)

Don't play the bounce sound for cordite grenades when hitting the skybox.  (dlls/weapons/slugger.cpp)

Fix occasional Sludgeminion missiles staying in place until fade out.  (dlls/world/ai_weapons.cpp)

Fix Discus ambient animation occasionally not restarting when all are deployed.  (dlls/weapons/discus.cpp)

Fix Thiefs in Episode 2 to play wall hit sound. (dlls/world/ai_weapons.cpp)

Fix Dwarves in Episode 3 to play wall hit sound. (dlls/world/ai_weapons.cpp)

Fix Thiefs, Dwarves and Centurions projectiles occasionally being stuck in the air. (dlls/world/ai_weapons.cpp)

Tweak the Dwarf Axe and Thief Knife throwing so it doesn't look silly when it hits the floor.  (dlls/world/ai_weapons.cpp)

Fix Novabeam Laser End sprite having RF_DEPTHHACK flag set for thirdperson instead of firstperson.  This was causing phantom muzzle flashes clipping through walls.  (base/client/cl_trackent.cpp)

Fix the Novabeam and Metamaser being able to generate sprites behind players.  (base/client/cl_trackent.cpp)

Added gl_antialiasing CVAR and video menu option to control Multisample Anti-Aliasing.

Fix +set CVARs from command line being ignored on startup.  (base/client/cl_main.cpp, base/qcommon/common.cpp, base/qcommon/files.cpp)

Don't render fog if we're in the main menu.  Otherwise the buttons and models get the fog sometimes (most obvious with e1caves.bsp).  (base/ref_gl/gl_fogsurf.cpp and base/ref_gl/gl_entity.cpp)

Fix sky, cloud and lightning epair values only being sent down in Single Player.  (base/client/cl_view.cpp, dlls/world/world.cpp, user/dk_shared.h)

Fix vid_gamma 1.0 not being true gamma identity. Colours should be true to the original textures.

Don't allow sidekick commands during cinematics or intermissions.  (dlls/world/client.cpp)

Fix cinematics being broken if reloading from the console.  (base/client/cl_main.cpp and base/client/cl_parse.cpp)

Fix shell casings being able to block doors.  (dlls/weapons/weapon_funcs.cpp)

Fix glock shell casing model being off by -24.  (data/models/e4/we_glockshell.dkm)

Fix centurion spear model being off by -24.  (data/models/e2/me_spear.dkm)

[12-23-2018 Release]

Don't allow 'use' command when dead.  (dlls/world/client.cpp)

Don't play the no ammo sound when dead.  (dlls/weapons/weapon_funcs.cpp)

Fix bounding box size for protopods.  (dlls/world/protopod.cpp)

Fix bounding boxes in deathmatch for weapons being thin, tall boxes that were off-center. (dlls/weapons/weapon_funcs.cpp)

Fix bounding box size for wraithorb, manaskull, and megashield.  (dlls/world/artifacts.cpp)

Fix lava hurt sounds not being precached.  (dlls/world/world.cpp)

Fix manaskull expire messages not showing or playing in DM.  (dlls/world/client.cpp)

Fix updates to work if allow_download_http is 0.  (base/client/cl_http.cpp)

Fix seagull bbox size. 

Fix issue #77 'Armor bug'.  Specifically, fix wrong armor models showing up in custom maps that purposely used armor from other episodes.  (dlls/world/artifacts.cpp)

Fix issue #185 'Save gems does not transfer between episodes?'.  Per Romero request, just keep them between episodes.  (dlls/world/artifacts.cpp and dlls/world/client.cpp)

Fix Savegem bbox size.  (dlls/world/artifacts.cpp)

Fix Psyclaw warped view attack to cease when the intermission/cinematic is reached at the end of e1m7b.  (dlls/world/ai_weapons.cpp)

Add \n to 'Save gem acquired.' and 'You have no save gems.' message strings that get sent.  (base/physics/p_main.cpp and dlls/world/artifacts.cpp)

Fix ending of cinematics to use info_player_intermission if it exists and we're in an intermission.  Fixes the upside down angles and wrong origin in e2m4e.  (dlls/world/cin_playback.cpp)

Add weapon_select_cordite command.  (dlls/weapons/slugger.cpp)

Don't play the double cock sound if we're not doing the double cock animation.  (dlls/weapons/slugger.cpp)

Make sure we play the no ammo sound if slugger_select is going to fail.  (dlls/weapons/slugger.cpp)

Give cordite grenades with the giveall cheat.  (dlls/weapons/Main.cpp)

Cap EF_POISON, EF_SMOKETRAIL, EF_MAGIC_ARROW, EF_BOLTTRAIL, EF_METEOR, and EF_FIRE paritcle effects from CL_AddPacketEntities.  (base/client/cl_ents.cpp)

Fix issue #182 'Destroyed objects disappear with delay'.  (base/physics/com_sub.cpp, dlls/world/gibs.cpp, and dlls/world/misc.cpp)

Add 'dm_black_chest_no_explosion' CVAR by request.  Ensures that the Black Chests in Episode 3 will always spawn an item in Deathmatch.  (dlls/world/artifacts.cpp)

Don't interpolate the camera angles and origin on Intermissions, Cinematics and Monitors.  (base/client/cl_ents.cpp, dlls/world/client_init.cpp)

Cut end cinematics straight to Intermission during trigger_changelevels.  (dlls/world/triggers.cpp)

Don't clear the RDF_LETTERBOX flag on P_ExitLevel.  It gets cleared anyways at Client_InitGClient in world.dll.  This makes it look nicer when we transition from endmatches in DM instead of seeing the statusbar again before the changelevel fires.  (base/physics/p_main.cpp)

Make sure we clear the scoreboard on disconnect/reconnect/changelevel.  Otherwise the unique SP delay at end of unit only works once and occasionally parts of the DM scoreboard can show in e1 if coming from DM to SP.  (base/client/cl_main.cpp)

Fix deco objects with start frames in the epairs (i.e. the e1m1a coffins, e1m3a computer terminals, etc.) from animating until that frame.  Just go directly to it.  (dlls/world/misc.cpp)

Clear the bActive flags on scoreboard exit.  (base/dk/dk_scoreboard.cpp)

Move muzzle flash depth hack to R_DrawMuzzleFlashDepthHack; draw it after volumetric fog and beams.  Only change state if we have muzzle flashes to draw.  Fixes the uglyness when shooting a shotcycler or whatever near large volumetric fog (like e1m6a).  (base/ref_gl/gl_entity.cpp and base/ref_gl/gl_rmain.cpp)

Fix incorrect bbox sizes for katwall and spewall models (used in e4dm1.bsp, credits.bsp, and intro.bsp).  (data/models/e1/e1decoinfo.csv)

Don't play sidekick idle chatter in intermissions/end-of-unit.  (dlls/world/sidekick.cpp)

Fix sidekicks mysteriously starting e3m1a and e4m1a with previous weapon NUMBERS (i.e. they had a discus (#1) now they show up at e3m1a with the silverclaw (#1).  Sidekicks are supposed to spawn with glocks in e4m1a.

If we're in an intermission stop shooting at the camera and just start patrolling.  (dlls/world/ai_func.cpp, dlls/world/ai_think.cpp, dlls/world/ai_utils.cpp, dlls/world/client_init.cpp, dlls/world/func2.cpp)

Hide sidekicks and stop thinking during intermissions to keep it consistent with coop and the actual preceeding cinematic.  (dlls/world/sidekick.cpp)

Fix Superfly spawning in the wrong place at the beginning of e4m1a when coming from a map transition as opposed to a manual map load.  (dlls/world/client.cpp)

Don't draw the shot.jpg from the map transition autosaves.  This can happen if you save during a map, then move to the next map.  If that happens, then it will continously show that old shot.jpg for the autosave.  (base/dk_/dk_menu_loadgame.cpp)

Fix e_greyfish and e_goldfish bbox sizes.  (data/aidata.csv)

Change shotShell clipmask to MASK_SHOT so e4m4b shooting range can work properly with the glock shells.  Check PointContents on spawn of shell for CONTENTS_SOLID so we don't spawn it in a wall/the void.  (dlls/weapons/weapon_funcs.cpp)

Better version of the centerview fix for the gashands smoke.  Borrowed code from ripgun's smoke code.  (dlls/weapons/gashands.cpp)

Show smoke from ripgun when crouched.  (dlls/weapons/ripgun.cpp)

If weaponMuzzleFlash track ent is also the player then change it to track the weapon.  This fixes the Episode 4 auto weapon switch from Glock to Levelled up Daikatana showing weird leftover effects from the muzzle flash.  (dlls/weapons/weapon_funcs.cpp)

Remove weapon_visible muzzle flashes being handled on the game DLL side, make it stricly a client-side affair.  (dlls/weapons/weapon_funcs.cpp)

Fix server selection box in the server browser not properly following the scroll up/scroll down buttons.  (base/dk_/dk_menu_multiplayer.cpp)

Don't cap HTTP downloads to framerate.  (base/client/cl_http.cpp, base/client/cl_http_autoupdate.cpp, base/client/cl_main.cpp, base/client/client.h, base/dk_/dk_menu_autoupdate.cpp)

Added r_gunfov CVAR to independently control gun view model FOV.  Required protocol update for proper tracking of the muzzle flashes and beams.

Don't loop weapon ambient sounds during cinematics, monitors or intermissions.  (dlls/world/cin_playback.cpp, dlls/world/client_init.cpp, dlls/world/func_monitor.cpp)

Don't replay the black and wooden chest animations if re-entering the PVS when they are already open.  (dlls/world/artifacts.cpp)

Fix Hellfire Paladin attacks not being reduced by 25% if Ring of Fire is in users inventory.  (dlls/world/ai_weapons.cpp)

Fix dm_random_map and dm_same_map to work with map voting.  (base/physics/p_main.cpp)

Fix being able to get more cordites than the limit when picking up another slugger.  (dlls/weapons/slugger.cpp)

Set renderscale for the chatgem, otherwise developer 1 will complain about scale being 0, 0, 0.  (base/client/cl_ents.cpp)

Fix a bug with info_player_deathmatch flags setting to spawn with the Slugger and spawning with Cordite selected but using Slugger ammo.  (dlls/weapons/slugger.cpp)

Reactivate win_use_profile_dir.  Use -portable or an empty portable.cfg file in Daikatana/Data for Daikatana/Data saving.  Necessary for Windows 10 nonsense.  (base/qcommon/common.cpp and base/win32/sys_win.cpp)

Fix a potential null ptr access bug in Com_ValidTouch.  Reduce Com_ValidTouch and Com_ValidTouch2 into one function.  (base/physics/com_sub.cpp)

Fix the animation frame weirdness in dm_fast_switch/coop_fast_switch modes.  (dlls/weapons/weapon_funcs.cpp)

Fix a memory leak with trigger_toggle and trigger_changemusic.  (dlls/world/triggers.cpp)

Fix breakme and boost cheats working with no params passed to them.  (dlls/world/cheats.cpp)

Fix xplevelup command going over max boost allowed per episode.  (dlls/world/client.cpp)

Fix poisoned and item expiration messages showing up in cinematics/intermissions.  (dlls/world/client.cpp)

Fix an extra 'Poisoned!' message showing up at the tail end of 'You feel the poison leaving your system'.  (dlls/world/client.cpp)

Don't use winfo->ammoName for weapon_spawn_projectile.  Causes sidekicks to attempt to pick it up!  (dlls/weapons/trident.cpp and dlls/weapons/venomous.cpp)

Fix directional sound coming from first-person view while holding a leveled-up Daikatana.  (dlls/weapons/daikatana.cpp and dlls/weapon_funcs.cpp)

Fix the ambient sounds of a leveled-up Daikatana playing during cinematics/intermissions.  (dlls/weapons/daikatana.cpp and dlls/weapon_funcs.cpp)

Fix a severe memory corruption error with target_laser entity setting F_EDICT instead of F_INT for its userhook.  Affects reloading e4m6c (final boss battle with Kage).  (dlls/world/target.cpp)

Fix sidekicks sounds from firing the slugger not playing.  (dlls/weapons/slugger.cpp)

Send \t for SV_ConSay_f so it shows the larger white text from console 'say' messages.  (base/server/sv_ccmds.cpp)

Fix God Mode and Rampage cheats not carrying over between level transitions.  (base/physics/dk_sent.cpp, dlls/world/client.cpp, dlls/world/sidekick.cpp, user/p_user.h)

Fix sidekicks not following the player unless a 'come here' command is sent while in their view when restoring a save.  (dlls/world/sidekick.cpp)

Fix CTF applying 'deathmatch 1' late if it is not set.  Has to be done before P_InitEdicts or the weapons won't rotate.  (base/physics/p_main.cpp and dlls/world/world.cpp)

Fix the blue flag in CTF mikiko/red team flap being too far to the right.  (base/client/cl_statusbar.cpp)

Fix monitors to immediately set the view angles instead of turning the camera to the starting angle.  (dlls/world/func_monitor.cpp)

Fix monitors to reset the delay when Monitor_Stop is triggered.  Necessary because now we can exit out of cameras.  (dlls/world/func_monitor.cpp)

Fix Kage not removing the ghosts when he dies.  (dlls/world/kage.cpp)

Fix Kage Ghosts not always counting towards monster kill count.  (dlls/world/ghost.cpp)

Fix e4m6a not removing the daikatana from players inventory when using the massacre cheat.  (dlls/world/cheats.cpp)

Fix a mistake from 2016 that was causing 'Warning: %s(): setting OpenAL volume failed: %s\n' to fire off for sounds that were released.  (base/Audio/DkAudioEngine_OpenAL/S_Calls.cpp)

Fix give_inventory item_savegem to do the right thing depending on what modes we have set.  (dlls/world/artifacts.cpp and dlls/world/inventory.cpp)

Added dumpstats, setexp, setbonusgemcount cmds.  (dlls/world/cheats.cpp)

'Boom' max map size from 5MB to 10MB.  Needed for e1mindfuguebeta on x64.  (base/qcommon/cmodel_dynamic.cpp)

Clear MEM_TAG_LEVEL, MEM_TAG_GAME, MEM_TAG_HOOK, and MEM_TAG_NODE on DLL Unload.  Q2 Does this, we should be too.  (base/physics/p_main.cpp)

Clear leftover userhook memory during SpawnEntities.  Fixes the memory leaks from MEM_TAG_HOOK during map transitions.  (base/physics/dk_sent.cpp)

Clear MEM_TAG_NODE on LevelExit.  Fixes memory leaks from entities node paths during level transitions.  (dlls/world/world.cpp)

Fix target_monster_spawn not parsing epairs immediately.  Fixes e2m5e when you kill the statues as soon as they spawn trapping you in the level.  (dlls/world/target.cpp)

Fix purifier shards complex particles returning on a load game after you have already picked it up.  (dlls/world/artifacts.cpp)

Fix sidekicks always responding yes to picking up armor when health > 100.  Necessary fix for new aidata.vsc.  (dlls/world/sidekick.cpp)

Slightly redo SIDEKICK_ToggleGodMode so it mirrors the player so the unbalanced sillyness stops.  (dlls/world/sidekick.cpp)

Fix subtitles showing up blank and missing newline in the console.  (base/client/cl_scrn.cpp)

Shut off any weapon looping sounds when Kage dies.  Otherwise the ripgun's spinning up sound carries over to the mikiko battle.  (dlls/world/kage.cpp)

Make sure the cordite mode stays selected on the slugger during level transitions in single player and coop.  (base/physics/dk_sent.cpp, dlls/weapons/slugger.cpp, dlls/world/client.cpp)

Fix a memory leak with alist_destroy.  (dlls/world/actorlist.cpp)

Fix memory leak from itemInfo_t MEM_TAG_HOOK.  (dlls/world/artifacts.cpp)

Fix out-of-bounds unreachable address errors found by Dr. Memory.  (base/qcommon/files.cpp and user/filebuffer.cpp)

Set tongue_monsters[T_MONSTER_GHOST] for self->netname.  Necessary for coop death messages.  (dlls/world/ghost.cpp)

Fix Lycanthir's tracebox not working to detect if a player or monster is blocking them during the resurrect sequence.  Otherwise, the players could get stuck inside them.  (dlls/world/lycanthir.cpp)

Fix stray rockets from rocketgang not disappearing when colliding with worldspawn.  Regression from SVF_DEADMONSTER changes.  (dlls/world/ai_weapons.cpp)

Don't print King Garroth exited the level on e3m6a in coop.  (dlls/world/triggers.cpp)

Fix enemies that are gibbed by doors, falling into lava, etc. to count towards your exp in SP and Coop.  (dlls/world/client.cpp)

Fix phantom daikatana effect sometimes hanging around when Kage disappears.  (dlls/world/kage.cpp)

Simplify/refactor some of the code.  (dlls/world/kage.cpp)

Set no gib, no blood fragtype flags for Kage boss battle so we don't see this crap in the cutscene.  (dlls/world/kage.cpp)

Set kage to RF_NODRAW when he's killed so we don't see two Kage's at the end cinematic.  (dlls/world/kage.cpp)

Make sure Mikiko's DK trackent fx is always on.  (dlls/world/mikiko_monster.cpp)

Set no gib, no blood fragtype flags for Mikiko boss battle so we don't see this crap in the cutscene.  (dlls/world/mikiko_monster.cpp)

Don't print Kage exited the level on e4m6c in coop.  (dlls/world/coop.cpp)

Fix the e2d music to play during Kage boss battle in coop.  (dlls/world/client.cpp)

Add missing save register functions for Kage Ghosts and the red flare effect from spawning the ghosts.  (dlls/world/ai_weapons.cpp and dlls/world/world.cpp)

Fix flame torch damage being dependant on frame rate (more specifically packet rate); even on dedicated servers.  (dlls/world/light.cpp)

Fix saving Discus projectiles.  (dlls/weapons/discus.cpp)

Fix shared coop inventory with the bomb parts in E4M1.  (dlls/world/artifacts.cpp)

Fix saving Shockwave orb projectile.  (dlls/weapons/shockwave.cpp)

Fix saving Sunflare projectiles.  (dlls/weapons/sunflare.cpp)

Fix saving Ion Blaster projectiles.  (dlls/weapons/ionblaster.cpp)

Fix saving Venomous projectiles.  (dlls/weapons/venomous.cpp)

Fix saving Trident projectiles.  (dlls/weapons/trident.cpp)

Fix saving C4 projectiles.  (dlls/weapons/c4.cpp)

Fix saving Kineticore projectiles.  (dlls/weapons/kineticore.cpp)

Fix saving Bolter projectiles.  (dlls/weapons/bolter.cpp)

Fix saving Sidewinder projectiles.  (dlls/weapons/sidewinder.cpp)

Fix Wisp ammo moving away from spawn origin when restoring a save.  (dlls/weapons/wyndrax_weapon.cpp)

Fix Metamaser deployed having hard global limit of 3.  (dlls/weapons/metamaser.cpp)

Fix Metamaser deployed limit not resetting on save restores.  (dlls/weapons/metamaser.cpp)

Don't allow switching weapons in the middle of Nharre's Nightmare attack if we have no ammo left for it.  (dlls/weapons/nightmare.cpp)

Don't allow switching weapons in the middle of Shockwave attack if we have no ammo left for it.  (dlls/weapons/shockwave.cpp)

If we're already animating FRAME_WEAPONSWITCH don't allow us to spam weapon_select_x commands.  Otherwise we can get caught in a loop of the holster animation.  (dlls/weapons/weapon_funcs.cpp)

Fix spamming weaponSelect weirdness while charging up the Haedes Hammer.  (dlls/weapons/hammer.cpp and dlls/weapons/weapon_funcs.cpp)

Fix spamming weaponSelect weirdness when using the last Sunflare.  (dlls/weapons/sunflare.cpp)

Wait for Shockwave 'wind down' animation to finish before allowing weaponSelect when out of ammo.  (dlls/weapons/shockwave.cpp)

Wait for Sidewinder 'wind down' animation to finish before allowing weaponSelect when out of ammo.  (dlls/weapons/sidewinder.cpp)

Fix losing last bolter ammo when spamming weaponSelect.  (dlls/weapons/bolter.cpp)

Fix firing last Ballista ammo then spamming weaponSelect next attack_finished will be delayed on new weapon.  (dlls/weapons/ballista.cpp)

Fix not clearing the debris list on server kill.  (dlls/weapons/main.cpp and dlls/weapons/weapon_funcs.cpp)

Fix inability to forcibly change Glock to another weapon when firing it runs out of ammo.  (dlls/weapons/glock.cpp)

Fix Glock and Slugger always auto-switching to Daikatana when they run out of ammo.  (dlls/weapons/glock.cpp and dlls/weapons/slugger.cpp)

Fix a crash when firing the ripgun with 1 bullet left and changing the weapon in the middle of the sequence.  (dlls/weapons/ripgun.cpp)

Get GAME_HARD_LINKED and REF_GAME_HARDLINKED working.

Over 2000+ sanity checks in the game DLLs potentially avoiding many crashes.

[03-20-2019 Release]

Adjust incorrect brain (e1m7b) model bbox size. (data/models/e1/e1decoinfo.csv)

Fix Music and Cinematic volumes being lower volumes on level transitions (base/Audio/DkAudioEngine_Miles/S_Calls.cpp and base/Audio/DkAudioEngine_OpenAL/S_Calls.cpp)

[04-02-2019 Release]

Add exception handler for Windows builds.  (base/win32/exception_handler.cpp)

Add win_minidump_autogen CVAR.  (base/qcommon/common.cpp)

Check sidekick->client pointer in GodMode functions.  Crashes Easy mode sometimes.  Fixes Issue #252.  (dlls/world/sidekick.cpp)

Undo MEM_TAG_NODE free to fix Issue #252.  (dlls/world/world.cpp)

[05-25-2019 Release]

Add client-side hack for Sunflares so their particles don't disappear when going through teleporters.  Reported by Yamazaki.  (base/client/cl_ents.cpp, base/client/cl_tent.h, base/client/cl_trackent.cpp, base/client/client.h)

[12-20-2019 Release]

Sanity check currententity in R_LightPoint. (base/ref_gl/gl_light.cpp)

Move ATTR_ defines from p_user.h to dk_shared.h.

Fix the 'crouching' effect that happens sometimes when returning from viewing a monitor.  (base/physics/p_client.cpp, base/phyics/p_save.cpp, dlls/world/func_monitor.cpp)

Fix particles disappearing for Venomous when going through teleporters in DM.  (base/client/cl_projectile_fx.cpp, base/client/cl_trackent.cpp)

Remove unusued r_lightlevel CVAR and stale code.  Keep byte lightlevel in ucmd structs until next protocol update; for now just send down a 0.

Fix bottom line of credits always showing up full brightness in x64.  Also simplify the scrolling code.  (base/dk_/dk_menu_credits.cpp)

Add 160Hz and 240Hz to gl_displayrefresh.  (base/dk_/dk_menu_video.cpp and base/ref_gl/gl_rmain.cpp)

Save a few cycles by not doing a stricmp for checking if vid_ref == 'soft' since the software renderer hasn't worked since 1998.  (base/client/cl_scrn.cpp and base/client/console.cpp)

Make sure we set 'vid_ref' to 'gl', not 'soft'!  (base/ref_gl/gl_rmain.cpp)

Fix speed boost to use sv_statboost_time CVAR.  (dlls/world/artifacts.cpp)

Remove unused MAX_FRAME_SKIP Nelno leftover.  Implement the NET_Sleep in SV_Frame (from Q2 3.17).  (base/server/sv_main.cpp)

Null terminate userinfo string in SVC_DirectConnect.  From Q2 v3.17.  (base/server/sv_main.cpp)

Add cl_no_compressed_svc_frames CVAR for dial-up friends that can't keep up.  (base/client/cl_main.cpp, base/server/sv_main.cpp, base/server/sv_send.cpp)

Fix full-screen console activated by shift+tilde in-game only rendering half size.   Reported by Knightmare.  (data/default.cfg, base/client/cl_scrn.cpp)

Changed scr_conspeed default to 5000 from 3.  (data/default.cfg, base/client/cl_scrn.cpp)

Added RF_IGNOREPVS flag.  Needed so we can cleanly redo the Venomous and Sunflare projectiles when going through teleporters.  The previous way caused strange things to happen on high pings.

[05-24-2020 Release]

Add 'Mouse Acceleration' menu option for the Mouse Menu in Windows.

Don't write a *.sav(z) file for Deathmatch, Deathtag, and CTF games.  Otherwise, an e1m1b transition on these servers can cause a problem with e1m1a->e1m1b transition on a coop server hosted from the same server.  (base/server/sv_ccmds.cpp)

Remove unused cluster bits, U_HIERARCHIAL, U_BEAM_DIR, HRSENT_*, CDSENT_* flags.

Remove unused 'impulse' command.  Keep byte impulse in ucmd structs until next protocol update; for now just send down a 0.

Fix a bad sanity check in Inventory_inv_update.  (dlls/world/inventory.cpp)

Fix thief not using punch sometimes when he should. (dlls/world/thief.cpp)

Remove the return false early out in AI_FindNextPathCorner.  (dlls/world/ai_func.cpp)

Fix AI_IsClearToPoint to return float for tr.fraction instead of int.  This allows the Griffon and Ghosts enemies to navigate better during attacks.  (dlls/world/ai_func.cpp)

Don't com_sprintf every frame for the chat message cursor blink.  (base/client/console.cpp)

Fix CL_ScaleRotateAlpha not reading angle.z and rot.z.  This only affects the metamaser ring sprites.  It's now correct code, but doesn't seem to change the graphical output.  (base/client/cl_tempent.cpp)

Fix e4 drugbox not playing the door open sound.  (dlls/world/healthtree.cpp)

Fix fnStackWalk64 to work with AMD64.  (base/win32/exception_handler.cpp)

Fix e3 Bolter accuracy being inaccurate with boost powerup.  Reported by Yamazaki.  (dlls/weapons/weapon_funcs.cpp)

Fix regression with shockwave firing multiple times.  (dlls/weapons/shockwave.cpp)

[07-17-2020 Release]

Fix regression with being unable to join tourney mode.  (dlls/world/flag.cpp)

Fix potential memory leak in vote_CheckSpawns.  (dlls/world/client_vote.cpp)

Add sv_vote_disallow_flag VOTE_MAPROTATIONONLY/65536 for allowing to vote only for maps in the maps_dm/maps_ctf CVAR rotation.  Per Yamazaki request.  (dlls/world/client_vote.cpp)

Don't allow pickup of cordites ammo in tourney warmup mode.  (dlls/weapons/slugger.cpp)

Add additional checks for touch functions in weapons code for tourney warmup mode.  (dlls/weapons/weapon_funcs.cpp)

Fix cordites not being given by default in tourney warmup mode and when unlimited ammo is set.  (dlls/weapons/slugger.cpp)

Fix dm_weap_noallow to be used in tourney warmup mode.  (dlls/world/client_init.cpp)

Show flags in CVAR description for dm_weap_noallow.

[12-19-2021 Release]

Add quicksave and quickload console commands.  Add to keyboard menu.  By request.

Fix Disruptor defaulting to gashands (if available) when restoring a save.  Reported by MilkeyWilkey.  (dlls/weapons/disruptor.cpp)

Print pickup message for gib ammo with Nightmare weapon.  (dlls/world/gib.cpp)

Respect sv_bonusgem_maxammo_increment CVAR for gib ammo with Nightmare weapon.  (dlls/world/gib.cpp)

Remove gibs from game world after we pick them up with Nightmare weapon.  (dlls/world/gib.cpp)

Fix rare issue with aggressive quicksave/quickload with Sunflare tossing.  Reported by MilkeyWilkey.  (dlls/weapons/sunflare.cpp)

Fix weapons 're-arming' during map transitions in SP and Coop.  (dlls/weapons/weapon_funcs.cpp, dlls/world/client.cpp, user/p_user.h)

Fix breathe from exiting water sound (hiro/breathe2.wav) playing during map transitions.  (dlls/world/client.cpp)

Change Player ID in Multiplayer to scale with HUD size.  (base/client/cl_view.cpp)

Use viddef instead of scr_vrect for SCR_DrawDebugGraph.  Helps the netgraph stay at the bottom of the screen during a cutscene or when you're killed.  (base/client/cl_scrn.cpp)

Don't show the 'Welcome back %s' and don't play the goldensoul powerup sound every map transition when logged into a coop server. (dlls/world/coop.cpp, user/p_user.h)

Don't play 'global/inventory_open.wav' when respawning or joining a Coop server with persistant inventory.  (base/physics/p_inventory.cpp, dlls/world/client.cpp, user/p_user.h)

Remove ITF_USEONCE items from Coop Persistant Inventory when used.  (dlls/world/coop.cpp)

Fix regression with team_join_f being unable to switch teams in CTF/DT.  (dlls/world/flag.cpp)

Fix a crash from junk cl->edict data with local coop autosaving.  (base/server/sv_ccmds.cpp)

Fix a potential crash from junk cl->edict data with SV_GetSpectators().  (base/server/sv_main.cpp)

Make sure we don't play that inventory sound on map transitions with the AEGIS runes (and other goodies that span more than one map).  (base/world/client.cpp)

Don't waste HUD update packets from Coop_Persistant_Inventory_give() if we already have the items.  (base/world/coop.cpp)

Fix a rare crash from self->enemy becoming NULL during E2 Small Spider's run away goal.  (dlls/world/smallspider.cpp)

Don't play inventory update sound for CTFGiveControlCard().  (dlls/world/ctf.cpp)

Don't allow the cam_* commands during intermissions or from spectators.  (dlls/world/chasecam.cpp)

Hide view weapons during Coop Intermissions.  (dlls/world/client_init.cpp, dlls/world/triggers.cpp)

Use FS_Open instead of relying on serverState.basedir for coop checkpoint files.  (base/physics/dk_sent.cpp)

Add dm_item_noallow CVAR for disabling specific items and powerups in deathmatch modes.

Add R_DrawAlphaList().  Rename R_DrawMuzzleFlashDepthHack() to R_DrawAlphaListDepthHack().  Draw alpha entities after the fog so they blend properly.  This is mostly to fix wraithorb and RF_WEAPONMODEL blending funny near fog, which gives away your position.  Do it for all RF_TRANSLUCENT though, because player models as well.  (base/ref_gl/gl_entity.cpp)

Change RF_UNUSED1 to RF_HUDMODEL for the weapon models in the inventory bar as a hint to not process them in the alpha list, otherwise they don't show up.  (user/dk_shared.h)

Don't allow the use of Drug Box, Health Fountain, Health Tree, and Hosportal in Tourney Warmup mode.  (dlls/world/healthtree.cpp, dlls/world/hosportal.cpp)

Add 3840x1080 to video modes.  (base/dk_/dk_menu_video.cpp, base/qcommon/vid_modes.h)

Add weapon_exit_level() functions to stop projectiles, etc. during Tourney Warmup to Tourney Fight mode.

Clear center prints and subtitles during map transitions.  (base/client/cl_main.cpp)

Add s_mss_waveout_buffer CVAR for Miles audio driver.

Allow holding down the shift during autocomplete to go backwards.  (base/client/keys.cpp, base/qcommon/cmd.cpp, user/dk_shared.h)

Fix a regression where timestream23.bsp and timestream34.bsp fail to play in some circumstances.  (dlls/world/triggers.cpp)

Make sure cin_on can't be toggled again if we're already in it (bad things happen).  (dlls/world/chasecam.cpp)

Fix bolter projectiles occasionally being stuck in mid-air.  (dlls/weapons/bolter.cpp)

Hack around the ANIM_READY_STD ripgun model being smaller than the other ripgun animations by forcing the end of the READY anim to the last frame of the AMBIENT anim.  (dlls/weapons/ripgun.cpp)

Fix a rare crash from mishima guards and take cover task.  (dlls/world/ai_func.cpp)

Fix nSpawnValue flags not being restored on save game load.  (dlls/world/ai_save.cpp)

Save the gibs and blood splat decals in single player.  (dlls/world/gib.cpp)

Save bullet holes/scorch mark decals in single player.  (dlls/weapons/weapon_funcs.cpp)

Fix credits.bsp being stuck in infinite reload loop when re-entering Credits menu.  (base/dk_/dk_menu_credits.cpp)

Fix stacked BUTTON_ANY key presses being applied to end of map scoreboards.  (base/client/keys.cpp)

Fix Buboids renderering in the wrong order during the 'melt' sequence with Smoke particles.  (dlls/world/buboid.cpp)

Don't sent alpha values of 0 (invisible) to the renderer when RF_TRANSLUCENT is set.  (base/client/cl_ents.cpp)

Make sure rotworms stay on the ceiling during save restores.  (dlls/world/rotworm.cpp)

Fix being able to walk through the E3 Black Chest as it is opening.  Ocassionally being stuck in it.  (dlls/world/artifacts.cpp)

Add 3D/Positional sound for Sidekick chatter.

Fix compressed packets in demos playing same frame twice.  (base/client/cl_parse.cpp)

Carry over notarget cheat during level transitions.

Fix Episode 1 Worker NPCs ignoring notarget.  (dlls/world/skinnyworker.cpp)

Get static linked ref_gl working in *nix.

Fix spamming of 'com_RegisterWeapons: too many weapons!' in demo playback.  (base/physics/com_weapons.cpp)

Check and reset UniqueID entity pointers on map transitions and save restores.

Fix memory leak from func_event_generators and save restores.  (dlls/world/func_event_generator.cpp)

Get rid of CMapStringToPtr mapNameToAttributes.  Just use stricmp.  (dlls/world/AI_File.cpp)

Fix Episode 2 health fountain resetting the light every 3 seconds.  (dlls/world/hosportal.cpp)

Fix buffer overflow from sine/cosine lookup table reads.

Avoid potential overflow with Nightmare Weapon.  (dlls/weapons/nightmare.cpp)

Add AI_FindPathToItem for Sidekicks.  Previously there was bad casting going on with the userhooks for items.  This helps sidekicks locate items better on their own.  (dlls/world/ai_func.cpp)

Change camera entity flags from FL_CLIENT to a new FL_CAMERA flag created for the purpose.  (dlls/world/chasecam.cpp)

Fix incorrect 'inflictor' being set to RadiusDamage from Thunderskeet attack.  (dlls/world/ai_weapons.cpp)

Fix sidekick weapons occasionally corrupting the heap.  (dll/weapons/weapon_funcs.cpp)

Fix Wyndrax's Wisp's (from the monster, not the weapon) accessing the wrong type of userHook.

Fix Wyndrax's spawnZap from effect_lightning attractors corrupting the heap.

Fix lerped frames stuttering on map reloads.  Specifically, re-opening black chests, etc.  (base/client/cl_main.cpp)

Add info_aiscript entity type.  (dlls/world/misc.cpp)

Fix a memory corruption bug with playerHook_t *hook, hook->type being changed by firing the venomous weapon.  (dlls/weapons/venomous.cpp)

Add a 'cl_wipesaves' cmd.  (base/client/cl_main.cpp)

Clear delta frames when returning from main menu because delta frames get upset during alt+tab in main menu then returning to game.  Mostly fixes the disappearing statue bug in e2m5a, and other disappearing entities.  Does not work with trackents, like sfx_complex_particle, but moving out of the PVS and back into it will start them again.  (base/dk_/dk_menu.cpp)

Don't play metallic hit sound from discus when hitting Sidekicks.  Reported by MilkeyWilkey.  (dlls/weapons/discus.cpp)

Fix reload sound for Mishima Guards not being precached.  Reported by MilkeyWilkey.  (data/sounds/e1/m_mwguard.vsc)

Add a delay for s_exit_sound 1 firing off at trigger_changelevel instead of spamming 'Can't leave without...'.  (dlls/world/triggers.cpp)

Fix coop changelevels at end of e1m7, e3m6 and e4m6 boss battles not firing if at least one player is dead.  (dlls/world/triggers.cpp)

Rename 'Cinematic Volume' to 'Voices Volume'.

If Sidekick God Mode is off and Friendly Fire is off still process damage kickback.  By request.  (base/physics/com_sub.cpp)

Add 'scr_cinematics_aspect_ratio' CVAR.  By request.  (base/client/cl_scrn.cpp)

Add 'scr_subtitle_cine_y' and 'scr_subtitle_game_y' CVARs for controlling the Y offset for subtitles.  (base/client/cl_scrn.cpp)

Eliminate unnecessary calls to Cvar_Get in SCR_ScaleCoords().  (base/client/cl_scrn.cpp)

Don't print the 'Pinned!' message when dead.  (dlls/weapons/ballista.cpp)

Add 'vote endmatch'/'vote nextmap' commands.  By request.

Add 'minimize' command.  By request.  (base/client/cl_main.cpp)

Add experimental support for 'r_mode_desktop' on Windows.  By request.  (base/ref_gl/gl_rmain.cpp, base/win32/vid_dll.cpp)

Check if pointer returned from linked list in C4 weapons code is not nullptr.  If so, set node = node->next and continue to avoid potential infinite loop.  (dlls/weapons/c4.cpp)

Allow sidekicks to pick up goldensouls if we ask them to.  (dlls/world/items.cpp)

Add the ability to start dk_ded.exe as a service if -service is passed to it.  Use 'sc create dkded binPath=<path_to_dk> -service -portable +exec <server_cfg.cfg>' to add it to services.msc.  (base/win32/sys_win.cpp, base/win32/service.cpp)

Add win_close_on_error CVAR to automatically close DK on errors.  Useful for dedicated servers.

Fix a bug with CVAR_Shutdown() being called too early and possibly crashing dedicated servers after pressing 'Quit' on Windows.

Fix crosshair CVAR being < 0 or > 4 potentially crashing the game.  (base/client/cl_view.cpp)

Upgrade Windows builds to use Winsockets v2.2.  Previously was using v1.1.  Biggest benefit is faster ping times in the server browser.  (base/Goa/nonport.cpp, base/win32/net_wins.cpp)

Add Sys_Milliseconds64() function for reporting \\uptime\\ to status, info, and GSpy Query requests.

Set sv_doautosave = FALSE on SV_Shutdown().  (base/server/sv_main.cpp)

Add StartSoundToClient() to API.  For use with dm_taunt CVAR so we only send it to who needs it.

[12-22-2022 Release]

Add cl_deltaframeclear CVAR to disable the delta frame clearing hack.  (base/client/cl_main.cpp, base/dk_/dk_menu.cpp)

Fix TempEvent_Explosions rendering incorrectly on GCC 64-bit builds.  (base/client/cl_tempent.cpp)

Fix weapon bobbing not working in demo playback.  (base/client/cl_ents.cpp)

Run entire codebase through cppcheck, constifying a lot of things and removing a lot of dead code.

Fix a regression where excessive gib damages to sidekicks in rare circumstances will not show the game over screen.  (dlls/world/sidekick.cpp)

Add sv_sidekick_health_* CVARs by request.

AI_FollowRunning() will remove this goal if player is dead for sidekicks.  (dlls/world/ai_func.cpp)

Get spectators working with Coop.

Fix a bug where notarget cheat applies for all players in coop.  (dlls/world/ai_func.cpp)

Fix unbalanced state with WSACleanup().  (base/Goa/Sdk/goautil.cpp)

Fix coop_player_id not showing all players.  (base/client/cl_view.cpp)

Add coop_allow_exit CVAR to toggle exiting the map without requiring everyone at the exit.

Set ent->s.solid = 0 on client exit to fix the weird zombie state that can occur
sometimes in coop.  (dlls/world/client.cpp)

Refactor some of the coop select character/model code.

Don't show spawn protection expires message twice when switching from spectator 1 to spectator 0. (dlls/world/client.cpp)

Set coop value to 2 or higher to remove the 3 player client restriction.  (base/server/sv_init.cpp)

Get spectators working with Deathtag.

Set a special team for spectators in CTF and DT modes.

Add multiple HTTP download handles.  Greatly improves downloading speed.  By request.

Fix centerprints shifting the scoreboard down a few units if resolution height is greater than 1080.  (base/client/cl_scrn.cpp)

Add experimental scr_huddrawmapname CVAR.  By request.

Fix hook->pGoals memory leak at the source.  (base/physics/p_save.cpp, dlls/world/ai.cpp, and dlls/world/world.cpp)

Fix memory leak of MEM_TAG_PATHLIST for Sidekicks on save restores.  (dlls/world/sidekick.cpp)

Remove initializing hook->pPathList for clients.  Does not appear to be used.  (dlls/world/client_init.cpp)

Actually fix bAcroBoosted and bSpeedBoosted in Client_CheckIntertialDamage() to not apply damage if levels are maxed out.  (dlls/world/client.cpp)

Don't send TE_KICKVIEW when in third-person mode.  Don't use it if received in third-person mode.  An old FIXME from 2000.

Added sv_nohealthfounatins CVAR.  By request.

Added sv_armor_max_value CVAR.  By request.

Fix wraithorb expiration message not displaying sometimes.  (dlls/world/client.cpp)

Fix memory leak with CacheMonsterSounds().

Fix memory leak from info_aiscript entities.

Fix memory leak from target_monster_spawn entities.

Don't let decos, etc. interfere with AI_IsClearShot() traceline.  (dlls/world/ai_utils.cpp)

Fix sidekick ammo count not showing up.  Regression from 2018.  (dlls/world/sidekicks.cpp)

Fix regression from 04-01-2021 with FRAMEDATA_FLAG.  (dlls/world/MonsterSound.cpp)

Report if we have no weapon from SIDEKICK_GetAmmoCount().  This updates the HUD on map start for e3m1, e4m1, etc. to show there is no weapon instead of returning the previous HUD state.  (dlls/world/sidekick.cpp)

Fix Wyndrax being invincible while using the Wraithorb.  (dlls/world/ai_func.cpp)

Pressing a weapon button will bring back the weapon HUD if in another type of HUD (i.e. Sidekick or Inventory HUDs).  (dlls/weapons/weapon_funcs.cpp)

Allow Nharre's Nightmare Weapon to instagib Buboids.  By request.  (dlls/world/buboid.cpp)

Fix memory leak from Nharre, Garroth, and Kage spawning dynamic enemies during boss fights.  (dlls/world/ai_weapons.cpp)

Fix memory leak from AI_DoSpawnName().  (dlls/world/ai_utils.cpp)

Don't allow sidekick_swap to work/update HUD if in INV_MODE_SKILLS HUD.  (dlls/world/sidekick.cpp)

Sanity check in novabeam_command().  (dlls/weapons/novabeam.cpp)

Added sv_healthfountainrecharge_limit CVAR.  By request.

Save track ents and inventory HUD status at the beginning of demo files.

Save crosshair info at the beginning of demo files.

Save sidekick selector HUD status at the beginning of demo files.

Fix demos parsing frames before the precache is done.  (base/client/cl_parse.cpp)

If target has died in com_Damage() don't keep processing.  Fixes clients being easily gibbed when they shouldn't be.  (base/physics/com_sub.cpp)

Fix sidekick_get to spawn a temporary flare icon as per the original v1.0 readme.  Reported by MilkeyWilkey.  (dlls/world/items.cpp, dlls/world/sidekick.cpp)

Fix sidekick_attack to spawn a temporary flare icon as per the original v1.0 readme.  Reported by MilkeyWilkey.  (dlls/world/sidekick.cpp)

Don't play 'ready to attack' Sidekick sounds if we don't have a valid enemy to attack when using sidekick_get.  (dlls/world/sidekick.cpp)

Added support for 'daikatana://server:ip' protocol handler in Connect_f().  (base/client/cl_main.cpp)

Fix a couple of bugs with tourney mode.

Added experimental 'demojump <number_of_frames>' command.  By request.

Added 'scr_surroundthreshold' CVAR.  By request.

Make sure we clear the framestate on U_REMOVE from CL_ParsePacketEntities().  This fixes firing the Nightmare weapon again multiple times and seeing stale frame states.  Does the same for other entities that can get re-used with the same type of ent.  (base/client/cl_ents.cpp)

Fix the Daikatana from 3rd person view (and other players) disappearing if you go out of the PVS.

Add 'sv_no_ion_water_damage' CVAR.  By request.

Fix Nightmare weapon unsetting RF_NODRAW if you suicide while firing the weapon with the reaper spawned.  (dlls/weapons/nightmare.cpp)

Fix use of 'cam_toggle' command when being targetted from the Nightmare weapon.

Add relevant Extra Options to the m_dm, m_ctf, m_dt CVARs.  Add them to the multiplayer flag_cvars box.

Added 'sv_use_old_weapons_csv' CVAR to enable use of the old weapons.csv with reduced ammo count.  By request.

Fix regression from item_key_touch() not removing keys set with ITEM_RESP_COOP_STAY in Single Player.  (dlls/world/artifacts.cpp)

Reset icon_modelname array in CL_Boost_Icons_Init().  Needed for view sizes greater than 100 otherwise we get stale states on new maps.  (base/client/cl_icons.cpp)

Allow 'heartbeat' command to send a state change to the GameSpy protocol.  (base/server/sv_ccmds.cpp)

Added JSON file support to replace the VSC/CSV files.  Simplifies things for modders/hackers.  By request.

Fix enemy sight sounds not always playing after a map restart.  (dlls/world/MonsterSound.cpp)

Clear sidekick ambient sound times on level load.  (dlls/world/Sidekick.cpp)

Fix some quirks with GameSpy master server reporting.

Fix a memory leak with particles and complex particles.

Fix keystone lights in e3m1 toggling on and off in Coop.  (dlls/world/artifacts.cpp)

Fix a memory leak with internal e3 bolter linked list at level exit.  (dlls/weapons/bolter.cpp)

Fix ModelIndex for Coop Persistent Invetory on map transitions.

Precache the backpack and coop stat sounds on map start in coop.

Remove unnecessary !self->client sanity check on info_player_xxx.  Regression from a long time ago.  (dlls/world/client.cpp)

Fix inventory "sack" items not applying special attributes (i.e. ring of undead, envirosuit, etc.) in coop with persistent inventory and backpacks.

Don't process any more Sidekick node talk when player is dead.  (dlls/world/sidekick.cpp)

Save Metamaser in Single Player.  (dlls/weapons/metamaser.cpp)

Save Cordite Grenades in Single Player.  (dlls/weapons/slugger.cpp)

Save Ballista logs in Single Player.  (dlls/weapons/ballista.cpp)

Save Wyndrax Weapon projectiles in Single Player.  (dlls/weapons/wyndrax.cpp)

Don't spawn Bolter projectiles when colliding with other projectiles.  (dlls/weapons/bolter.cpp)

[01-16-2023 Release]

Fix links not working from auto updater with new API.  (base/client/cl_http_autoupdate.cpp)

Don't write out hostname and maxclients infostring twice from SV_StatusString().  (base/server/sv_main.cpp)

Remove ipx_sockets, unused net_shownet CVAR, NA_IPX and NA_BROADCAST_IPX stuff.

Pause when downloading models during HTTP multi handle downloads.

Use mousewheel to scroll in server browser.  (base/dk_/dk_menu_multiplayer.cpp)

Set self->use = NULL on TRIGGER_ONCE for func_event_generators.  (dll/world/func_event_generator.cpp)

Add back GOALTYPE_IDLE before other goals in AI_LoadMonsterPlayerHook().  (dlls/world/ai_save.cpp)

Check curl_multi_add_handle return value when starting an HTTP download.  (base/client/cl_http.cpp)

Actually check rcon_client_password->string to not be empty before sending rcon command.  (base/client/cl_main.cpp)

Add sv_holiday_easter_egg CVAR by request.

Add a -safe parameter at startup that resets the video mode.  (base/qcommon/common.cpp)

Check r_customwidth and r_customheight values are not <= 0.

Change PAK verification to close game if pak assets are 1.0 and not 1.2.  (base/client/cl_http_autoupdate.cpp)

Early out of the PAK verification checks if file length is wrong.  (base/client/cl_http_autoupdate.cpp)

Fix hud_next and hud_prev commands not cycling weapons over a netgame.  (dlls/world/inventory.cpp)

Fix incorrect empty string for MultiplayerMaps.json and CoopMaps.csv that was being optimized out by release builds. (base/dk_/dk_menu_multiplayer.cpp)

[02-18-2023 Release]

Fix empty WAV files crashing the audio engine in 64-bit.

[03-11-2023 Release]

Fix parsing autoupdates from toastednet mirror after move to AWS.
