Game Changes
Additions
- (Un)Subscribing to an addon while in a map now refreshes the Spawnmenu > Browse > Addons section to contain the new or deleted addons, etc
- Browse > Games now refreshes when a game is mounted or unmounted
- You can now open the workshop addon directly from Spawnmenu > Browse > Addons
- You can now right click on any folder in Spawnmenu > Browse > Games to quickly generate a spawnlist for that folder and its subfolders
Fixes
- The "Add current server to Favorites" button now changes to "remove from favorites" if the server is already in favorites
- The decal limit now uses r_decals's current value (with a maximum of 8192), not its default value, which is 2048. Must be set before a map is loaded
- Prevent Lua errors when generating Spawnmenu tabs when an entity or a weapon does not have a Category set, or it is not a string
- menu_cleanupgmas now takes into account addons that updated to ISteamUGC API from the old API, which makes their old .gma in addons/ unused
- Fixed subscribed addons not being able to update in the main menu due to them being mounted
- Fixed loading screen progress bar kinda going backwards in certain points, and added more steps to the very end
Changes
- Addons that have failed to download or are waiting to be downloaded now display in the Addons menu. Their descriptions also explain why they are not working.
- Do not copy old API .gma subscriptions to .gma.outdated files when an update is needed, the copied file is never used
- Added map icon for fof_nest
- Display a UI message when we failed to find models for an addon in Spawnmenu > Browse > Addons
TTT Changes
- Fixed an issue with LANG.AddToLanguage to do with missing languages (Community Contribution)
Technical Changes
Additions
Fixes
- Fixed the game refreshing gamemode and map lists for menus multiple times while loading onto a map or disconnecting, remounting addons, changing gamemode
- Subscribing to addons while in game no longer remounts addons twice, now only remounts once
- Fixed Bootil's memory formatting taking a signed integer, thus memory sizes would be displayed incorrectly in certain places
- Prevent spawnicons with sizes 33-63 from saving "_64" versions of the spawnicons, now uses the default 64x64 image without any suffix like it should
- Hopefully fixed the model in maps reloading issue forever
- Fixed models loaded by ClientsideModel() or similar methods losing their modelbounds data on map disconnect due to them being reloaded (for now, we don't reload such models)
- Fixed gui.EnableScreenClicker()'s internal panel showing up after a screen resolution change while it is active
- Fixes for potential crash issues when handling Lua entities in C++
- Fixes for potential crashes with MOVECOLLIDE_FLY_CUSTOM, FLY_BOUNCE, FLY_SLIDE, DEFAULT
- Fixed server browser blacklist being case sensitive
- Missing the weapons/scripted_ents.Get function at entity creation no longer exits the game (For example when it's only missing clientside)
- Let people know that -authkey is no longer needed in the srcds console if it is still in the srcds launch options
- Fixed GameContentChanged hook running 3 times in a row in menu state
Changes
- Try to avoid reloading the language multiple times on startup, and add some safeguards when trying to set the language to an invalid one
- Other minor error handling improvements for Steam Workshop subscriptions
- Experimental: Move r_flushlod commands to map disconnection (from map loading) to fix l4d map crashes in vphysics
- Use the new undo.AddFunction return value for "Make Statue" property
- Experimental: Entity.NetworkVarNotify callbacks are now called after the DataTable variable has been set (self:GetDTBool, etc)
- Made the message "CTextureAllocator::GetTextureRect has invalid texture handle! Expect crashes!" not as spammy
- Improved handling of invalid texture handles when shadow rendering
- Added infinite loop prevention for a rare case in shadow rendering
- Do not try to load filesystem_steam.dll/so/dylib since we do not ship it or use it, should avoid a certain startup crash
- Minor optimization in Base gamemode's CalcView hook (Community Contribution)
- Updated CPackedStoreReadCache to its TF2 version, to hopefully fix an uncommon crash
- Better error handling for getting subscriptions to hopefully prevent "Fetching subscriptions" rarely getting stuck forever for some people
- Reduced spamminess of "Couldn't find/load font" warnings
Deletions
- Remove files that are automatically sent from lua/send.txt
- Delete the Panel.IsModal existence check from DMenu now that the update is released
Hammer Editor Changes:
- Fixed Auto visgroups UI being rebuilt for each solid face of the brush textures are being applied to, now rebuilds once
- Fixed major hang when opening Texture Application Tool with many objects selected
- Enabled "Visual Styles 6.0", so it's UI styles now match OS
- Horizontal resizing of Texture Browser now moves the buttons that would cover the current texture text
- Fixed multiple crashes due to .fgd BaseClasses being redefined with fewer variables than they had before
- Adjusted the Texture Application Tool UI (Face Edit Sheet window) to fit longer texture names
- Added extra width to the right side toolbar so Auto Visgroups can fit without a scrollbar
- Applying textures via the "Face Edit Sheet" window or "Apply Current Texture" Tools no longer rebuilds visgroups UI for each object, only after all textures are applied, so it should be much faster now
- Fixed map views forcibly taking focus away from LightingPreviewWindow
- Minor improvement to Ray-Traced Preview in Hammer (No longer is an error texture)
- VRAD: Fixed 3d skybox being forced on certain leafs where 2d only skybox is expected
Lua API Changes
Additions
- Added ClientSignOnStateChanged(int UserID, SIGNONSTATE OldState, SIGNONSTATE NewState)
- Added SignOnStateChanged(SIGNONSTATE OldState, SIGNONSTATE NewState)
- Added SIGNONSTATE_* enums
- Added 4th argument to GM:PlayerBindPress - button code
- Added a 3rd argument to gmsave.LoadMap - a callback that is called after the save have been successfully loaded
- Added DProperty_Entity panel that acts as a entity picker row
- Allow returning false in undo.AddFunction to skip undo if it's no longer valid (Community Contribution)
- GM:GameContentChanged is now also called for serverside/clientside realms like originally intended
- Added DTree_Node.GetExpanded
- Added DTree_Node.OnNodeAdded( newNode )
Fixes
- Fixed Vehicle.SetVehicleParams taking "steering" parameters from "engine" table, fixed it affecting the speed of some cars due to vphysics shenanigans, fixed it needing boostMaxSpeed, maxRevSpeed and maxSpeed in different units
- Setting size of a spawnicon AFTER the model should now work correctly (Still not recommend doing so though)
- SpawnIcon:SetSpawnIcon no longer requires the file to be loaded elsewhere to work
- Fixed DCheckBoxLabel's vertical alignment of the label (Community Contribution)
- DTextEntry removes its autocomplete menu if it's visible when the text entry itself is removed
- Fixed an issue with DTree file folders where adding folders to an open node would not populate the added node unless the parent node was collapsed and then expanded again
Changes
- DProperties now accept the same row types as the DTVar types are called
- More strict argument type checking for util.TableToKeyValues and CreateMaterial (the table input)
- util.StringToType now works with "entity" type ( entity ID )
- Updated the continue statement implementation in LuaJIT
- SpawnmenuContentPanel:SwitchPanel now accepts nil to switch to no panel
- Entity.SetTable now throws a type error when given not a table (used to silently fail)
- SurfaceInfo.__tostring now contains the ID of the surface
Deletions