Daikatana 1.3 Project
Это фанатский патч версии 1.3, добавляющий выбор широкоформатных разрешений вплоть до 5120x2880, анизотропную фильтрацию до x16, частоту обновления до 150Hz, вертикальную синхронизацию, выбор новых вариантов отбрасываемых теней от различных объектов и не только. Со списком изменений можно ознакомится ниже, под спойлером:
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).
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).
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).
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).
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).
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).
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).
Added scaling of quick console by status bar scale factor, toggles with cvar con_usehudscale (client/console.cpp).
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_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).
Added sv_resetmap and sv_allow_errorcmd (maraakate).
Updated the bash scripts for client-ness. Fixed some Const correctness with CVector in GCE DLL.
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).
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).
Added MULTIUSE spawnflag to trigger_sidekick_teleport, allows re-use of trigger (world/triggers.cpp).
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 /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)
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).
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 _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).
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).
Внимание: Daikatana 1.3 Project нужно ставить на версию игры 1.2, желательно на полную английскую, но возможно заработает и на прочих локализациях версии 1.2.
Установка: Извлечь содержимое архива Daikatana_v1.3_Project_01.14.15_FULL.7Z в корневую папку с игрой, согласившись на замену, предварительно сохранив заменяемые файлы в другой папке и месте расположения, на случай бэкапа, пожеланию.