2 stories

Empty model handling reworked, prediction error counting fix, icons for new TF2 maps

Commit 5bca5b on main reworks how 0-byte model files are handled ("Change where it bails so maybe its less error prone?"), fixes prediction error counting for certain fields and adds icons for the 5 new TF2 maps.

Details

The empty model fix also reached the x86-64 beta separately in commit 7e5aa8, together with the earlier "Handle 0 byte model files crashing the game" change.

Rubat reverts the SetPos touch and DrawTexturedRectUV changes

Commit 09a162 on main makes the change that had Entity:SetPos fire trigger touch events opt-in via a separate argument, since it caused infinite loops in existing addons such as TTT. The UV behaviour without the sub-pixel adjustment moves to a new function, surface.DrawTexturedRectRawUV, so surface.DrawTexturedRectUV works the old way again.

Details

This answers the complaints of the past days: RNDX and addons that compensated for the old adjustment no longer break. The same commit also fixes NPC-related crashes and lua_refresh_file autocomplete, adds the serverside Player:RunConsoleCommand (with the same limitations as the global RunConsoleCommand) and uses it in some Sandbox tools, and fixes citizen_sheet_bloody.vtf looking blurry. The changes reached the x86-64 beta in the large merge commit cfa73c.

2 stories

Save crash fix on main; SetSaveValue allows m_hGoalEnt and m_hPhysicsEnt; ladder dismount fix

Commit 7b6a89 on main brings the crash fixes (including saves), allows m_hGoalEnt and m_hPhysicsEnt in SetSaveValue and tries to account for info_ladder_dismount inside the ground.

Details
  • Fix crashes related to recent changes, including saves
  • Allow m_hGoalEnt and m_hPhysicsEnt in SetSaveValue; hEnemy is replaced by NPC:SetEnemy
  • Try to account for info_ladder_dismount inside ground
  • Fixed VPC writing debug files into the release config on Linux
  • Minor cleanup

2 stories

0-byte model files no longer crash the game; Linux build cleanups

Commit 038c27 on main handles 0-byte model files that were crashing the game; commit 75a5a6 gets Linux32 building again for now.

Details
  • 038c27: unused Bootil features that print warnings disabled; less Linux compile log noise; unused libraries removed from lib/; 0-byte model files handled; compile warning fixes; Linux64 build progress; tool projects renamed internally
  • 75a5a6: "Get Linux32 to build for now. Seems there's a VPC bug on Linux that needs investigating"

x86-64 beta catches up: ALT+F4, DrawPoly errors, SetPos touch events and more

Commit bb0975 on the x86-64 beta brings over the main changes from 5–12 October: the surface.DrawPoly error on fewer than 3 vertices, the mcore rope fix, ALT+F4 closing the game, the getmetatable() LuaJIT fix, the map compiler updates, Entity:SetPos running trigger touch events, menu state library removal, the HQ Eli face and the other fixes listed in commits 185851, efb205, 7be067, 71ca28, c18cba and 693484.

1 story · 1 update

LibEdit dropped from Linux SRCDS; Mesh:DrawSkinned 52-bone error fixed

Commit 291b48 on main removes the LibEdit dependency (SRCDS input on Linux now works like on the x86-64 beta), fixes Linux32 SRCDS under WSL and fixes a wrongful error in Mesh:DrawSkinned with 52 bones.

Details
  • "MixMax 2: Electric Boogaloo"
  • LibEdit dependency removed; minor cosmetic changes to srcds_run
  • Fixed Linux32 SrcDS being unable to read file stats under WSL
  • Fixed wrongful error with Mesh:DrawSkinned with 52 bones
  • Folder addons are no longer searched in mountable games/platform
  • "Engine Error" added to the Sys_Error_Internal printf
  • Progress on Linux64 builds

1 story

Crash from removed triggers fixed; Hunter pose parameter fix; VPC and gmad build for Linux64

Commit b9fc35 on main fixes a crash with inputs firing from removed triggers, the Hunter NPC's wrong lookup function and lets SetSaveValue set m_hStoredPathTarget; VPC and gmad/gmpublish now build for Linux64.

Details
  • Fixed a crash with inputs firing from removed triggers
  • Fixed the wrong lookup function in Hunter NPC code
  • m_hStoredPathTarget added to the SetSaveValue whitelist
  • VPC and gmad/gmpublish build for Linux64; VPC builds and runs for Win64; VPC colors on Linux; no CodeLite projects on Linux
  • Lowercase min/max macros removed so they don't interfere with C++ headers on 64-bit Linux
  • Minor Hammer code fixes

2 stories

Barnacle regression fixed, 3 bone weights for meshes, math_counter outputs, Autorefresh rework

Commit 280e7a on main fixes regressions in entity search (including Barnacles), allows three bone weights for procedural meshes, adds OnChangedFromMin/Max to math_counter and substantially changes Autorefresh error handling.

Details
  • Separate Linux client and SRCDS build scripts
  • Classname added to the CUtlRBTree overflow message
  • Fixed some regressions with entity search, including Barnacles
  • ErrorFromLua renamed to ErrorNoHaltStack; added CLuaInterface::FormatError
  • mesh.BoneData can be called with index 2 (weight ignored); Mesh() allows 3 bone weights and Mesh:BuildFromTriangles reads up to 3
  • Two new PhysFrame sub scopes: PhysFrame-CPhysicsEnvironment::Simulate and PhysFrame-VPhysicsShadowUpdate
  • math_counter gains OnChangedFromMin/OnChangedFromMax outputs and SetMaxValueNoFire/SetMinValueNoFire inputs
  • Improved Autorefresh error handling; fixed a memory leak with Windows auto refresh and symlinks ("hopefully without regressions, as the system was changed somewhat substantially")

1 story

Builds move to GCC 14; FS_fread warnings try to include the file path

Commits aa4090 and bda422 on main move the build toolchain to GCC 14 and try to add the file path to CWin32ReadOnlyFile::FS_fread warnings.

Details
  • aa4090: file path in FS_fread warnings; LuaJIT, Bootil, VPC and the game build with GCC 14
  • bda422: ToGL builds with GCC 14 ("I pushed too soon accidentally"); fixed FreeImage not building on Windows; build scripts can now almost build on vanilla SteamRT 4

1 story

math.ceil/floor fix ported; "load quick" no longer boots you without a quick save

Commit bb557c on main ports a fix for math.ceil/math.floor, adds self checks for corrupted map files and stops the load command from booting you out of the session when the save is missing.

Details
  • Port a fix for math.ceil/math.floor
  • Self checks for corrupted map files
  • load doesn't boot you from the session for missing saves, so an accidental "load quick" bind press is harmless
  • Fixed ZFunc not being set when overriding depth testing
  • Fixed a regression with DPanel:OnMousePressed due to recent changes
  • Merged PR: ENT:StoreOutput treats times=0 the same as times=-1

2 stories

Prediction errors now show the array index; multicore memory leaks fixed

Commit 9ecf4a on main makes prediction errors on arrays include the index for ints and floats, fixes a couple of multicore rendering memory leaks and a crash in render.UpdateScreenEffectTexture.

Details
  • GitHub Actions updated to version 6 for Linux and Windows
  • trigger_portal_cleanser added to the entity override whitelist
  • Fixed a crash with render.UpdateScreenEffectTexture
  • widgets.RenderMe and properties.GetHovered removed serverside
  • Minor cleanups so methods match the wiki and vice versa
  • Prediction errors on arrays include the array index for ints and floats
  • Fixed a couple of memory leaks with multicore rendering (render.UpdateScreenEffectTexture, render.PushCustomClipPlane)

2 stories

Big x86-64 beta update: entity creation crash fixes, p2p_force_reliable, Srcds workshop IDs from a file

Commit 0e9ec4 on the x86-64 beta brings a large batch of fixes: several potential crashes around entity creation and search, a new p2p_force_reliable convar, loading Srcds workshop IDs from a file, fixed normals on many built-in models and new props.

Details
  • Disable panel drag'n'drop with mouse 3/4/5
  • Fixed hacked Rollermines ignoring Combine Hunters
  • Allow setting filters via Entity:SetSaveValue
  • Override whitelist gains info_player_teamspawn, info_vehicle_groundspawn and placeholder entities based on prop_dynamic/prop_physics
  • Various potential crash fixes when creating entities and around entity search
  • Bandaid fix for GetBoneTransform returning garbage (needs further investigation)
  • Added p2p_force_reliable (default 0); small packets now use k_EP2PSendUnreliable instead of k_EP2PSendUnreliableNoDelay
  • Different fix attempt for overlay layers resetting on server join
  • Feedback message for host_writeconfig_lua
  • Srcds can load workshop IDs from a file, alone or together with a collection; the cache moved from cfg/srcds_addons.txt to cache/srcds_addon_list_cache.txt
  • Removed the CExampleEffect screen space effect
  • No Lua errors when using prop_effect in the base gamemode
  • New UpdateScreenEffectTexture matproxy (forces _rt_FullFrameFB to update at the end of the frame), used for the PHX screen
  • Fixed SWEP:CustomAmmoDisplay causing UI overlaps; ammo HUD no longer spams animations
  • Fixed normals on more built-in models (CS:S and EP2 props, grenades, furniture)
  • Fallback CS:S hostage pain sounds (citizen sounds), for TTT and other addons
  • Panels think and clip while the main menu is open
  • lua_shared: fewer Bootil::BString usages (ILuaShared unchanged), less duplication calling Lua from C
  • Cargo container props recompiled to fix tangents, plus 3 new props; spawnlists and spawnicons updated (CS:GO map props rearranged, more L4D1 props)
  • gmod_tool no longer errors with addon tools in non-Sandbox gamemodes
  • Also includes the SourceTV/HLTV crash fix, vehicle regression fix, bone cache fixes, zombie double ragdoll fix and the spawnmenu/Infected/npc_alyx fixes from main

surface.DrawTexturedRectUV stops applying sub-pixel UV adjustment

Commit 6a75b6 on main makes surface.DrawTexturedRectUV ignore the "sub pixel adjustment" of UVs so its UV arguments work as expected; only the Lua binding is affected.

Details
  • Ignore UV adjustments in surface.DrawTexturedRectUV
  • Refined DImage subrect support and KeepAspect features
  • Removed a leftover debug panel from the Paint tool; its icons keep aspect
  • Minor cleanups

2 stories

DImage shader replacement improved; Paint tool UI gets previews

Commit 788529 on main improves the DImage shader replacement system and reworks the Paint tool UI to show previews.

Details
  • DImage: case-insensitive check for VertexLitGeneric, LightmappedGeneric now included, SubRect shader materials draw the correct part of the texture
  • Paint tool UI with previews

is3DSkybox fix, higher quality Eli Vance face, menu state loses unused libraries

Commit 693484 on main fixes is3DSkybox not resetting when returning from hooks, ships a higher quality Eli Vance face texture from the S1 repo and removes some unused libraries from the menu state.

Details
  • Fixed the "is3DSkybox" variable not resetting when returning from hooks
  • Fixed some missing textures on Half-Life 2: Episode 2 props
  • Workaround for Portal using the same texture names as Ep2
  • Removed some unused libs from the menu state
  • "Last map" saves use a delimiter that can't naturally occur in filenames
  • The network transfer folder blacklist is now a whitelist; .ain was removed from the extension whitelist
  • Try resolving a crash with the recent change to Entity:SetPos
  • Merged pull requests: removed an unnecessary Think hook from the DOF post-processing effect; updated a comment in SurfaceProperties.txt
  • Higher quality Eli Vance face texture from the S1 repo
  • Fixed a typo in the cam.End2D underflow error message

1 story

Entity:SetPos now runs trigger touch events; controller input and SetNWVarProxy fixes

Commit c18cba on main makes Entity:SetPos run trigger touch events, fixes several controller input bugs and fixes the old value passed to SetNWVarProxy callbacks.

Details
  • "failed to dlopen" log skips are now case insensitive (macOS)
  • combine_booth_tall01b.vmt includes $normalmapalphaenvmapmask, commented out
  • Fixed IN_MOVERIGHT/IN_MOVELEFT not activating from a controller
  • Fixed a false positive "SeekPut overflow" message
  • Fixed Player:KeyDown clientside in singleplayer not detecting controller movement
  • Fixed SetNWVarProxy callback's old value being the new value
  • Entity:SetPos runs trigger touch events