Change log/5.17

From Sven Co-op
Jump to navigation Jump to search

1 Notable changes

  • New map "Suspension", by Hezus.

2 Important notes

  • Everyone: Your "autoexec.cfg" should be reverted manually. It's a user file but we may need to push important changes to it. (Any problems, just delete the file and re-validate your game.)
  • Server operators: Please fully reset "liblist.gam", as you shouldn't be modifying this anyway. -- The game will not run properly without some new settings in there.
  • Server operators: If you're running Metamod please use the vanilla distribution, do not use custom builds for Sven Co-op any more. (They shouldn't be needed and we'd like to verify that.)

3 Code

3.1 Game library

  • A debug message is printed when following files are loaded by the game: sentence list, material list, replacement map (sounds/models). Requires "developer 1".
  • Added new cheat command "cl_invisible". Makes you invisible and non-targetable when activated.
  • Added spawn flags and classification to "myinfo" / "thatinfo".
  • Ban voting is now disabled as standard unless configured by the server.
  • Bounce sounds: Volume and pitch is relative to impact velocity. The impacts should sound more natural now.
  • Changed the maximum "sv_zmax" value from 16000 to 454046 (larger than the max grid size), which should fix black sky box issues that could be seen in enormous maps.
  • Clamped "volume" and "MP3Volume" to range 0.0 - 1.0.
  • Creating an RPG rocket via the "create" cheat command now matches your view angles, so it fires where you're looking rather than just firing flat.
  • Door and button entities can now be re-positioned to the locations of other brush entities via trigger_setorigin and should open and close correctly.
  • Doors/Platforms: Added "fireonopened" and "fireonclosed" to fire a trigger when the movement ends. ("fireonopen" and "netname" still work.)
  • Doors/Platforms: Added "fireonopening" and "fireonclosing" to fire a trigger when the movement starts.
  • Doors/Platforms: Fixed doors not moving when "obey use type" is set to "yes, even while moving", but the door receives USE_TOGGLE and the door is not closed.
  • Doors/Platforms: Triggers for "fireonopening", "fireonclosing", "fireonopened", and "fireonclosed" now have a corresponding "*_triggerstate" key to choose off/on/toggle trigger use types. (Defaults to toggle.)
  • env_beam and env_laser: Added support for "!activator" and "!caller" as the stat/end targets.
  • env_sprite and "env_model" are now allowed to think faster than 10 FPS. (Up to 200, matching MAX_FPS.)
  • Fixed ammo duplication exploit.
  • Fixed an issue preventing the game from detecting the "m_rawinput" value correctly in some cases and thus not enabling raw mouse input.
  • Fixed an issue where players could commit suicide while in observer mode.
  • Fixed an issue where players entering observer mode were unable to move if they died while operating train/vehicle.
  • Fixed an issue where the game tried to load a MOTD file as a fall-back for the map vote list.
  • Fixed an issue where the Geiger counter never stopped "clicking" if the player entered observer mode after dying in a radioactive area.
  • Fixed an issue where train controls would stay visible on player's HUD if he died while operating train and then got revived.
  • Fixed the "Player view keeps warping back to the original position when moving the mouse" issue.
  • Fixed the "sentence_file" / "materials_file" world spawn key values not working.
  • func_tank: Fixed an issue where the looping sound would keep playing even when the entity was destroyed.
  • It is now possible to use scoreboard to mute players when in observer mode.
  • item_inventory: Fixed a bug with item's "trigger on use" whereby an unrelated item would fire this value if you held the item whilst using a different item.
  • The "MaxRange" world spawn key value works again now. The game sets "sv_zmax" to 16000, then loads the value defined in default_map_settings.cfg, checks the "MaxRange" world spawn key value, and finally looks for "sv_zmax" in the custom map config.
  • trigger_changevalue, trigger_createentity: Now works with "topcolor" / "bottomcolor" key values.
  • trigger_copyvalue, trigger_changevalue, trigger_createentity: Now works correctly with "toutfiltertype", "coutfiltertype", "tinfiltertype", and "cinfiltertype" key values.
  • trigger_copyvalue, trigger_changevalue, trigger_createentity: Now works with "explosion", "material", "gibmodel", and "weapon" key values (func_breakable, func_pushable).
  • trigger_copyvalue, trigger_changevalue, trigger_createentity: Now works with the "spawnobject" key value (func_breakable).
  • trigger_random (and derivatives) now support 32 targets, up from 16.
  • trigger_relay: It is no longer possible to spawn trigger_relay that targets itself. A warning message is printed and the target value is removed to prevent recursion (and server crash).
  • trigger_setorigin: Added support for "!activator" and "!caller" as the copy target.

3.2 AngelScript

  • Added an option to customize position of the view model. Exposed the functionality as two CBasePlayer methods: SetVModelPos() and ResetVModelPos().
  • Added SVC_STUFFTEXT to the NetworkMessageType enum.
  • Changed return type of CBasePlayer::DropPlayerItem() from CBasePlayerItem to CBaseEntity. This is necessary because some weapons drop entity that is not based on CBasePlayerItem (i.e. the Shock rifle).
  • Exposed new global object "CModelFuncs g_ModelFuncs". Provides various model-related methods (i.e. body group configuration functions).
  • Exposed new member variable "CBasePlayerWeapon::m_iDefaultSecAmmo".
  • New hook "EntityCreated" - called whenever a new entity is created.
  • New hook "PlayerTakeDamage" - called when a player takes damage. Attacker, inflicter, damage amount, and damage flags can all be changed from the hook handler.
  • New object "DamageInfo" - used by the "PlayerTakeDamage" hook.
  • Removed CBasePlayerItem::Drop(). This wasn't really a drop method and it was exactly the same as CBasePlayerItem::Kill().
  • The engine no longer crashes when unused sprite handle is passed in by the client library.

3.3 Engine

  • Added early size check for textures loaded from WAD files. Fixes potential buffer overflow.
  • Added support for various anti-aliasing modes. This feature is work in progress - no UI for it is available, and the game still defaults to 4x MSAA (or no AA in the low video quality mode). New start-up parameter -aamode N (where N is ID of the desired AA mode. New command gl_dumpaamodes - prints list of all AA modes. MSAA and CSAA (NVIDIA only) modes up to 16 samples are supported.
  • Bumped the maximum texture size to 1024 x 1024 pixels.
  • Changed default value of "gl_max_size" to 1024 from 512.
  • Changed default value of "gl_round_down" to 0 from 3.
  • Changed the default and fall back colour depth to 32 BBP. (16 BBP colour depth can be problematic on some modern systems.)
  • Clamped "volume" to 0.0 - 1.0 in the legacy sound engine.
  • Completely reworked the "stufftext" command filter. Added few more commands to the "stufftext" blacklist. This should make all known "slowhacking" methods ineffective (server OPs altering or trashing player's config, ejecting optical drive remotely, filling player's hard-drive with screenshots etc.). Useful commands like "spk" are still available.
  • Console: The auto-complete list now moves together with the main console window.
  • Console: The console no longer auto completes commands when space bar is pressed.
  • Console: Tweaked the default console size for a better user experience in low resolutions.
  • Corrected some Windows registry paths.
  • CVAR "maxplayers" now defaults to 2 for "multi-player only" mods.
  • Dedicated Server UI: Fixed possible crash caused by mod name not being initialized properly.
  • Dedicated Server UI: Fixed the [x] close button not working.
  • Dedicated Server UI: Fixed UI elements not initializing properly.
  • FastDL: Fixed the loading dialogue not updating when downloading files via HTTP.
  • FastDL: The progress bar switches into "Marquee" mode if the HTTP server didn't return file size so we can't tell how long will the download take. This way the player gets at least some visual feedback that the file is being downloaded.
  • FastDL: The second progress bar now works correctly and the time left info is displayed (it likely won't be very accurate for small files but it should stabilize after a while for larger files).
  • Fixed "-toconsole" not activating the console.
  • Fixed "r_fullbright" not taking effect immediately. (Requires sv_cheats 255.)
  • Fixed a crash when applying CVAR value that has white space as the first character (i.e. name " Player").
  • Fixed a problem that caused all HUD sprites (including the cross-hair) to be blurry and slightly stretched.
  • Fixed an issue that caused the same map to be listed multiple times when using the "maps" command.
  • Fixed an issue where "only" the first 32767 BSP faces were loaded and processed correctly. All 65535 faces should be usable now.
  • Fixed an issue where portions of the sky box would disappear at higher FOV values.
  • Fixed beams with sine noise not rendering correctly if number of segments is lower than 16. Fixes the egon gun beam glitch when attacking target that is too close.
  • Fixed buffer overflow in Sys_Error(). This is why some of the critical error messages appeared corrupted.
  • Fixed dev_overview not being initialized. Map overviews should work correctly now without having to fiddle with the settings every time.
  • Fixed multiline HUD_PRINTCENTER text overlapping in higher resolutions.
  • Fixed potential buffer overflow in the texture loader. This could cause instability or other problems whenever the engine tried to upload texture bigger than 640 x 480 pixels.
  • Fixed screen flashing during seamless (single player) map change (only happened with FBO enabled).
  • Fixed sky box and world clipping issues when using high sv_zmax values.
  • Fixed the "envmap" command. Can be used to create environment maps. (Useful for creation of sky box textures, 360 map overviews etc.)
  • Fixed the "PAUSED" text not appearing.
  • Fixed the "r_lightmap" command. Displays surfaces with only lightmap applied. Requires sv_cheats 255.
  • Fixed the "slist" and "list" commands. Added an option for user-defined port range. This will list both sv_lan 1 and 0 servers.
  • Fixed window title not updating on map changes. Window title no longer displays server name in singleplayer mode. Window title updates on linux as well now (listen server only).
  • FPS meter: Added new fps meter mode - "cl_showfps 2". Shows average frame time (milliseconds) in addition to the frame rate (frames per second).
  • FPS meter: Added new fps meter mode - "cl_showfps 3". Shows frame rate (frames per second), frame time (milliseconds), and number of wpolys/epolys. Similar to r_speeds, but doesn't require the developer mode, doesn't spam the console, and the frame time value represents the total frame time not just time spent in rendering.
  • FPS meter: New CVAR "cl_fpscolor" - when set to 1 the fps meter will change its colour based on the current frame rate.
  • FPS meter: New CVAR "cl_fpspos" - can be used to change position of the fps meter. Values: 1 - top-left, 2 - top-right, 3 - bottom-left, 4 - bottom-right; Default: 2
  • Game UI: Changed range of the "volume" and "suitvolume" sliders from 0.0 - 2.0 to 0.0 - 1.0. Values greater than 1.0 were causing sound distortion and the extended range made the slider too sensitive.
  • Game UI: Empty main menu buttons no longer react to mouse input.
  • Game UI: Fixed an issue where player models would be listed multiple times in the Multiplayer options menu.
  • Game UI: Fixed an issue where the game crashed when trying to create a new listen server without having any valid multiplayer maps available.
  • Game UI: Fixed an issue where the game menu appeared in front of the console window when starting the game with "-console". The console now has keyboard focus when starting the game with "-console".
  • Game UI: Fixed the "Unknown command: cl_crosshair_size" error message that appeared in the console when applying Multiplayer settings.
  • Game UI: Fixed the key binding list not rendering correctly if the kb_act.lst file doesn't start with a valid category definition.
  • Game UI: The console will use the "Default" font as a fall back if "GameConsole_Mono" isn't available.
  • gl_wireframe: Fixed line colour inconsistencies.
  • gl_wireframe: Fixed z-fighting issues in the "gl_wireframe 1" mode.
  • gl_wireframe: New CVAR "gl_wireframecolor" - can be used to customize the line colour. Accepts 3 bytes; i.e. gl_wireframecolor "255 0 0" for red colour. Default value: "255 255 255" (white).
  • Linux: Fixed the problem with VGUI1 controls "spazzing out" when running the game in windowed mode.
  • Made the texture size check error messages more informative.
  • Netgraph: Added new mode 4 ("net_graph 4"). When activated the netgraph will show both the loss/choke info and the graph.
  • Netgraph: Now only visible during an active game session.
  • Netgraph: Now rendered behind the VGUI2 elements (i.e. the developer console) but above the in-game VGUI1 elements.
  • Netgraph: Now uses mono-spaced font to prevent the displayed values from jumping around.
  • Netgraph: Optimized netgraph rendering to have minimal performance impact.
  • New command "fs_dump_paths" - prints all search paths currently in use by the file system.
  • New command "gl_info" - same as the "gl_dump" command but doesn't print the OpenGL extensions.
  • New command "skybox" - can be used to load different sky box textures on the fly. Only the local client is affected by the change. (Requires sv_cheats 255.)
  • New CVAR "cl_scaleenginefont" - can be used to toggle engine font scaling (netgraph, fps meter etc.). Default: 1 (enabled).
  • New CVAR "gl_clearcolor" - can be used to change the clear colour (for debugging). Accepts 3 bytes; i.e. "gl_clearcolor 255 0 0" for red clear colour. Default value: "0 0 0" (black). Requires sv_cheats 255.
  • New CVAR "gl_npot". Can be used to enable/disable support of NPOT (Non-Power-Of-Two) OpenGL textures. Default value: 1 (windows) if the HW supports it; 0 (Linux).
  • New launch parameter "-nomtex". Disables multi-texturing and enables texture sorting. This can be useful for players with lower end hardware (i.e. Intel HD Graphics) if they are experiencing performance issues on maps with dynamic lights and/or when using the flashlight. Dynamic lights still work in this mode but detail textures are not available. This can be a better option than disabling dynamic lights completely by setting "r_dynamic" to "0".
  • New launch parameter "-screen". Can be used to tell the engine which screen (monitor) should it use. The values are indexed from zero: "-screen 0": primary monitor, "-screen 1": secondary monitor etc. The value is not saved. Saving and proper user interface will be added in the next update.
  • NPOT textures are no longer rescaled if the hardware supports them. This improves quality of many low-res Half-Life textures.
  • OpenGL now auto-generates mipmaps if supported by the hardware. This will produce correct mipmaps even for NPOT textures, unlike the original box filter algorithm.
  • Re-enabled the "gl_envmapsize" CVAR that specifies resolution of the environment map textures created by the "envmap" command.
  • Removed "viewthing" related console commands ("viewmodel", "viewframe", "viewnext", "viewprev").
  • Removed IPX networking. You can remove "-noipx" from your launch options if you are still using it, it has no effect any more.
  • Removed screen size related commands ("sizeup" and "sizedown"). This feature only ever worked in the Software rendering mode.
  • Removed support for paletted OpenGL textures (including the "gl_palette_tex" CVAR). Drivers dropped support for paletted textures long time ago.
  • Removed support for SGI multi-texture extensions (obsolete, replaced by ARB multi-texture extensions in OpenGL 1.2.1).
  • Removed support for texture dithering (including the "gl_dither" CVAR).
  • Removed support for the obsolete ATI TruForm/npatch technology (including the "ati_npatch" CVAR).
  • Removed the broken and partially disabled Quake 1 mirrors (including the "r_mirroralpha" CVAR).
  • Removed the following obsolete and/or unused CVARs: "gl_affinemodels", "r_mmx", "d_spriteskip".
  • Removed the obsolete "gl_flipmatrix" CVAR. -- This was specific to 3DFX and their MiniGL driver and changing it to "1" on any other hardware would cause rendering issues.
  • Removed the obsolete "gl_ztrick_old" CVAR. Setting this CVAR to "1" caused rendering issues on some systems.
  • Renamed the "graphheight" CVAR to "net_graphheight" (consistency with the other net_graph CVARs).
  • Restored API/ABI compatibility with vanilla GoldSrc/Metamod-P. The custom Sven Co-op Metamod-P build is no longer necessary (and in fact won't work anymore).
  • Server to client file transfer: All .as .rc .cmd .sh and .bash files are now blocked explicitly.
  • Server to client file transfer: Files transferred over network can have extension of any length now. (Previously only 3-character filename extensions were allowed.)
  • Setting the "gl_picmip" CVAR value too high or low no longer crashes the game. You can now play the game with 1 x 1 pixels textures if you really want to.
  • Skybox textures can be up to 1024 x 1024 pixels in size now.
  • Sprite textures are now clamped correctly to prevent edge artefacts when rendering masked sprites.
  • The "cmdlist" command can now print command names longer than 16 characters.
  • The "cvarlist" command now detects all standard CVAR flags. Improved formatting.
  • The "gl_dump" CVAR now prints all OpenGL extensions no matter how many there are. Prints one extension per line for better readability.
  • The "screenshot" command now saves files to the "screenshots" sub-folder and uses the same naming conventions as the "snapshot" command ("screenshot" saves TGAs, "snapshot" BMPs).
  • The engine can handle up to 64 different screen resolutions now (was 32).
  • The engine no longer checks whether the loaded game/mod supports SDL input every time the mouse is moved.
  • The engine no longer crashes if the game/base directory paths are enclosed in quotation marks.
  • The engine no longer crashes when unused sprite handle is passed in by the client library.
  • The engine no longer loads the unused "cached.wad" and "fonts.wad" files (only used by the old WON builds).
  • The engine now checks BSP and WAD versions correctly. Only BSP version 30 and WAD version 3 is accepted.
  • The engine now ignores the .sc event files when "ignore_event_files" is set to "1" in liblist.gam.
  • The engine now respects the TGA origin bit. TGA textures that use the origin bit incorrectly may appear upside down. This can be fixed by flipping the image vertically or by changing the origin bit.
  • The engine now shows an error before shutting down if the file system library or the Game UI library fails to load.
  • The engine now shows more informative error messages if the client library fails to load.
  • The engine now uses the BMP skybox texture set as a fall-back if the TGA set isn't available.
  • The liblist.gam file is only loaded and parsed once now.

3.4 Sound engine

  • Adjustments to EAX presets to sound closer to Half-Life. (Has much room for improvement.)
  • Continue to process materials/sentences files if an empty or too long definition is found (just ignoring the bad material/sentence) rather than just discarding the lot.
  • Remove volume divisor; volume is no longer based on 2.0 maximum.

3.5 Non-playable characters

  • HWGrunt: Revised Heavy Weapons Grunt's fallen minigun search/pick-up logic.
  • Robogrunts: Can now fire the: M16A2, sniper rifle, rocket launcher, MP5, etc. Animation support updated for M16A2. Friendly version of Robogrunt has slightly higher voice pitch.
  • MoveToTarget() will no longer overwrite the m_vecMoveGoal previously defined.
  • TASK_MOVE_TO_TARGET_RANGE will set m_vecMoveGoal without using a model's head bone lookup.

3.6 Weapons/Items

  • Custom weapon properties are no longer discarded when the weapon is dropped (important for some scripted weapons).
  • Fixed an issue with the view model moving slightly to one side and then back to the centre when player rotates the view left or right. (This was only noticeable when using custom weapons with iron sights.)
  • Weapons with custom model definitions no longer revert to the default model when dropped/thrown.
  • [MP5] The weapon plays one of the 3 fire animations randomly instead of using just the first one.
  • [SAW] Fixed 2 firing sounds not being pre-cached.
  • [Uzi] Fixed an issue where some of the ammo would not get transferred to player's ammo reserve when picking up second Uzi.
  • [Uzi] Fixed Uzi/akimbo Uzi HUD icon not updating correctly on weapon pick-up.

3.7 Other

  • Fixed Linux client crashing on shut down.
  • Fixed MP3 playback not working on Linux.

4 Maps

4.1 Half-Life Single Player Campaign

  • Added missing weapon_m16 line to first half of HLSP maps when you should have picked it up by then.

4.2 Psyko

  • Fixed ammo entities jumping up and down in the boss battle arena.

4.3 Stadium 4

  • human_grunt_ally, human_grunt, robogrunt, and male_assassin weapons are now randomized when spawned. The map will spawn each NPC with a unique weapon each time the button is pressed, until it runs out of unique weapons and starts over.
  • Implemented new mortar ammo sprite by Hezus.
  • Reduced world poly in top-down camera by 150.

4.4 They Hunger: Episode 2

  • [TH_EP2_02] Possibly fixed the Zork unveil sequence stalling issue.

5 Scripts

5.1 Map Scripts

  • [survival_generic] Added "void DisableSurvival", which can be called by a trigger_script entity to disable survival mode during a map.

5.2 Plugins

  • [PlayerDecalTracker] Fixed PlayerDecal() method conflicting with a class name. (Symbol search order was fixed in the latest AS version.)
  • [Vox] Can play any Vox message without pre-caching it.
  • [Vox] Now uses the newly exposed SVC_STUFFTEXT message to issue "spk" command on client side.

6 Models

6.1 NPCs

  • [HGrunt] Corrected seams on the Opfor grunt backpacks.
  • [HGrunt] Fixed issue with aiming/firing oscillations.
  • [HWGrunt] Fixed smoothing groups and adjusted UV maps.
  • [RoboGrunt] Corrected weapons bodygroups.
  • Replaced the old muzzle flashes with new particle-based versions for all grunts (robogrunt, hgrunt, Opposing Force grunts).

6.2 Weapons

  • [MINIGUN] Fixed smoothing groups and adjusted UV maps.
  • [MP5] Corrected the muzzle flash events on two of the MP5's firing animations.
  • [P_MINIGUNSPIN] Fixed turbo-speed animation error.

6.3 Other

  • [ERROR] Added a "death" animation to the error model, so that mappers can "kill" NPCs with missing models and be able to walk through them.
  • [SCIGUN] New and improved Scigun cinematic model (seen in hl_c13_a4) that has much better animation alignment and matches shotgun we use.
  • Added MP5 muzzle flash sprite cleaned up by The303.
  • Added new Opposing Force player models, and re-made colour changing camouflage on all previous 'OP4' player models.

7 Sounds

7.1 Materials

  • Added nightwatch girder textures as metal materials
  • Fixed 'GLASSGREEEN' typo with three E's
  • Fixed some metal 'fifties' door textures having wood material sounds
  • Removed all instances of '+' and associated numbers, which also should not be in materials files.
  • Removed all instances of '{', which should not be in materials files.
  • Removed texture duplicates from the list, which sometimes had different material types

7.2 NPCs

  • [Human Grunts, RoboGrunt] Added footstep sounds to all grunt models.
  • [Robogrunt] Updated Robot Grunt with new phrases

8 SDK

8.1 FGD

  • [light_environment] Added _spread and _diffuse_light key values.
  • Added "zhlt_noclip" to base class "ZHLTbmodel".

8.2 StudioMDL

  • Added support for 1024 x 1024 pixel textures.
  • Now supports up to 128 submodels.

8.3 Hammer WAD configuration manager

  • Uses .NET Framework 4 (client profile).
  • Fixed left list views not scrolling downwards as expected.
  • Fixed duplicate WADs being sent to Hammer.
  • Hidden move up/down buttons as they don't work.

9 Other

9.1 Delta

  • Possibly fixed "Cache_UnlinkLRU: NULL link" error.

9.2 Game manual

  • Mapping configuration: Corrected "sv_zmax" value.
  • Mapping configuration: Removed "weaponmode_357".
  • Maps: Added missing map screenshots, and updated the thumbnails and full-size screenshots for several maps (but not all).
  • Maps: Added Robination.
  • Maps: Added Suspension.
  • Maps: Added Warforts.
  • Maps: Copied images to "thumbs" folder.
  • Maps: Renamed Last Stand to New Hope's Last Stand.
  • Server configuration: Corrected "sv_downloadurl" about HTTPS rumors. -- HTTPS is currently NOT tested or supported.
  • Server configuration: Corrected "sv_zmax".
  • Server configuration: Corrected "sys_ticrate".
  • Server configuration: Mentioned how to disable vote types.
  • Server configuration: Merged "Sven Co-op specific variables" into "Multi-player variables".
  • Updated credits list.
  • Weapons: Removed duplicate grapple textures image.

9.3 Misc

  • Added "suspension" to the map cycle and map vote configs.
  • Added new Opposing Force player models to the command menu.
  • autoexec.cfg: Added cl_filterstuffcmd "1" to force stricter "stufftext" filtering rules.
  • autoexec.cfg: Changed "gl_max_size" from 512 to 1024.
  • Fixed orientation of the forest512 and fodrian sky box textures. All of them were upside down, but since the older engine builds didn't respect the TGA origin bit, it was rendered correctly in-game.
  • gameui_english.txt / OptionsSubVoice.res: Removed the "Uses Miles Sound System" notice from the Voice Options tab. (the engine uses Steam voice system, not MSS for voice communication)
  • gameui_english.txt: Added new UI string "GameUI_NoMultiplayerMaps"
  • Removed tf_original from map cycle (you are supposed to vote for turretfortress.bsp)
  • Removed the (now unused) *.sc event files.
  • Removed the empty game menu logo files.
  • Removed the unused "fonts.wad" file.
  • Removed unused "gfx" files.
  • submerged_addons.wad is now included with the game.
  • zhlt.wad updated to match Vluzacn's VL34 build.