Hexen II: Hammer of Thyrion Release Notes for version 1.4.2 =============================== Changes since HoT-1.4.1 : General: -------- - The engine version is now at 1.19 for Hexen II and 0.19 for HexenWorld. - Added support for 64 bit architectures: The crashes on amd64 are fixed. - Added support for protocol 18: Hammer of Thyrion is now fully network- compatible with Raven's 1.11 windows version, as it has been with other Hexen II ports. - The net compatibility works both ways: When H.o.T is run as a client, it can connect to Raven-1.11 servers and can play just fine. On the other hand, if a 1.11 client wants to connect to a H.o.T. server, the server must be started with "-protocol 18" command line argument. - You can also load and play games saved with the 1.11 windows version and can playback the demos recorded with the 1.11 version. - Fixed and improved parsing of puzzles.txt: This fixes the bug where the names used to be listed as Unknown in the puzzle pieces inventory display (you can access the puzzle pieces inventory display using a key bound to the +showdm command, the default is q). - Updated the loading of strings.txt, infolist.txt and puzzles.txt. - Added ability of deleting saved games from within the game: press the DEL key in the load or save menu and press y at the dialog. Alternatively, the new console command deletesave does the same thing. - Updates to SDL input code. Added the Shift-Escape key combination as a new means for opening the in-game console. - Fixed wheelmouse for direct input mode in the windows version. Added the direct input support of HexenWorld to Hexen II. DirectInput is activated by the "-dinput" command line argument. - Revised pak data checking. - Added experimental support for using unpatched, off-the-cdrom 1.03 version pak files as a compile time option. Disabled by default. - Several cvar tweaks. - Made the load and connect commands to get rid of the menu or the console. - Made the item inventory bar to wrap around. - Fixed multiplayer episode selection in the menu system. - Updates to zone memory usage: a 256 KB secondary zone for static textures (sec_zone) is now initialized, which is especially useful for the software renderer and have its merits for the opengl version, too. - Revised several unsafe LoadStackFile and LoadBufFile usage. - Removed the useless net_vcr facility. - Tweaked the init sequence. - Changed the remnants of malloc usage into hunk or zone allocations. - Stabilized the gcc-4.0.x unit-at-a-time mode compilations by allocating several sizebufs dynamically instead of pointing to a static buffer. - Mac OS X: Ensured that the basedir always stays the same (fix was added in 1.4.1-rev1). Gameplay: --------- - The gamecode is now at version 1.19. - Origin fixes for tomed fires of vorpal sword and purifier: paladin used to fire them always from the non-crouched eye position, and it was even the worst when he was looking up (and down). You won't be shooting your back when standing just in front of a wall and fire your tomed purifier to the sky, from now on ;) - Fixed an obscure bug where the assasin with her 4th weapon uses the tome of power and can't fire it (gamecode version 1.16a, the fix was added in 1.4.1-rev1). Console: -------- - Added prefix matching support to the maplist command. - A bug in duplicate name detection in the maplist command was fixed. - Updated and sanitized the command lister procedures. - Added a -developer command line argument which sets the developer cvar to 1 during the init phase (ie. before the config is read). - Consolidated all Con_Printf and Sys_Printf family of procedures into a single flag based procedure. Added macros for compatibility with the old api. - Revised the logging system, made all Con_Printf and Sys_Printf output to be written into the logs from the start. Added a -devlog command line switch to enable logging of developer message even when the developer cvar isn't set. Network: -------- - Hexen II, UDP: added network interface scanning to overcome cases where the host address resolves to 127.0.0.1 (loopback) using the old hostent method. If, for some reason, you want to disable this feature, use the command line argument -noifscan. - Added -localip command line option to hexen2, usage: -localip . This changes the ip address embedded in the response packets for serverinfo and connect requests to use the command line provided ip address. The server still binds to INADDR_ANY and it can see the broadcast requests. - Added a hexenworld (quakeworld) style ip binding option for hexen2, usage: -ip or -bindip . This enables the server admins to bind to a specific IP address on a multi-homed host. Note that using this option will prevent the us from receiving broadcast packets, so the server discovery on the LAN will not work if the server is started this way. - Hexenworld: added -bindip as an alternative for the -ip option to follow the similar hexen2 change (both options are the same, -ip is checked first). - Fixed net driver checks in Hexen II dedicated server: It was broken in the 1.4.1 release and works properly now. - Fixed Datagram_Init returning success even if it couldn't initialize any of the lan drivers. - Fixed a long-standing 0 byte udp packet DoS bug in hexen2. Server: ------- - Fixed a bug in NET_SendToAll (mainly used for reconnecting clients upon changing levels) where it didn't skip non-connected clients. - Fixed a crash when changelevel2 is requested for a non-existant map. - Fixed the mission pack's doWhiteFlash server message: it used to affect the local client only. Naturally, the recorded demos didn't carry the message and the flash didn't appear, either. It works properly now. - Made the Hexen II dedicated server to exec not hexen.rc or config.cfg, but server.cfg if available. As an alternative, any config file can be exec'ed when starting the server, such as: "h2ded +exec myconfig.cfg" - Hexen II dedicated server now starts the demo1 map, if the server is still not active when initialization is complete. Video: ------ - Added 'apply changes' and 'reset changes' items to the video options menu. Software Renderer: ------------------ - Added support for non-intel cpus: x86 assembly is not needed anymore. - Fixed a few endianness issues. - r_transwater now always acts as an on-the-fly water translucency switch: it used to fail if a map was loaded with r_transwater disabled. works now. - Added ability to load external wal texture files instead of internal pixel data of the brush model (depends on the new r_texture_external cvar). OpenGL Renderer: ---------------- - Some speed-ups in the alias model drawing. - Fixed RGBA lighting. - Fixed sprite translucencies, such as punch hits, demoness' fireball and powered-up acidball attacks. - Fixed an invalid glTexParameterf call which used to result in extra lines being drawn on the screen. - Fixed bug that the array size for playertextures must be MAX_CLIENTS, but was hardcoded as 16. - Added ability to load external wal texture files instead of internal pixel data of the brush model (depends on the new r_texture_external cvar). Sound: ------ - Added a new version of SDL audio driver which fixed a rare bug where the game would randomly quit with an error message 'Cache_MakeLRU: active link'. - Made 22050 Hz the default sample rate. - Added external music file support via SDL_mixer as an extra patch. CDAudio: -------- - Updated the volume setting procedures. HexenWorld: ----------- - OpenGL: Fixed bug that netgraphtexture was not reset during re-initializa- tion of the draw subsystem (used to affect the packet loss status graph by r_netgraph). - OpenGL: Fixed bug that dynamic lights had a problem with RGBA lightmaps, such as torches didn't illuminate, but luminance mode was fine. Lightmaps in RGBA mode are working now. - OpenGL: Added colored dynamic lights and extra dynamic lights (stuff copied over from hexen2). The gl_colored_dynamic_lights and gl_extra_dynamic_lights cvars and their menu entries are functional now. Launcher: ---------- - Added integrated ability to patch the pak files. - The launcher now scans the installation directory against known game versions for pak file health, and pops up the patch window with a short report if it finds something bad. It now disables the mission pack or hexenworld options according to the results it took from the installation scanning. - Added ability to specify a different data installation directory. - Added ability to specify extra command line arguments which aren't directly supported by the graphical interface. - Many clean-ups. Now at version 1.0.2. Utilities: ---------- - Added the bsp2wal tool which extracts all texture data into hwal files. - Added the lmp2pcx tool which converts hexen2 texture data into pcx and tga. - Fixed the broken project path decision in qbsp. it doesn't scan for a maps directory anymore. - Added a findfirst/findnext implementation to the common library. - Several fixes in dcc. - Minor updates to the hexenworld utilities hwmquery, hwrcon and hwterm. Added extra patches against xqf and qstat for similar functionality. Other: ------ - Fixed many printf format string errors. - Imported the latest xdelta-1.1 sources into the tree. - Started a large scale attempt at improving const-correctness. - Updated inline commentaries. - A lot of code clean-up all over the tree. Credits: -------- Many thanks to Juraj Styk for his help and for the code he provided for the non-intel software renderer support, to Davide Cendron for 64 bit testing and to Kevin Shanahan (aka. Tyrann) for useful discussions and ideas.